ASP.NET WebForms GridView控件的使用

在DataList那个案例的基础上,进行GridView控件的使用

浏览器中的效果图:
在这里插入图片描述
第一步:
新建一个窗体,拖入一个GridView控件,然后直接可以编写后端代码(右键查看代码)

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;

namespace DataListExample
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindGridView();
            }
        }

        private void BindGridView()
        {
            this.GridView1.DataSource = ProductBLL.SelectProduct();
            this.GridView1.DataBind();
        }
    }
}

第二步:
到设计视图中去,选择编辑列
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自动生成字段前面的勾要取消

注意,如果是日期类型的数据,并且你只想显示年月日这样的中文,
在这里插入图片描述

接下来就是GridView控件的删除操作:

还是一样的,需要在DAL层去写删除的方法,以及BLL层

首先找到ProductDAL这个类,写删除方法,通过id进行删除
在这里插入图片描述
BLL层的ProductBLL类中代码:
在这里插入图片描述

接下进到窗体的设计界面,添加一个删除字段
在这里插入图片描述
然后找到GridView1的RowDeleting事件
在这里插入图片描述
进到后台代码(右键,查看代码):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;

namespace DataListExample
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindGridView();
            }
        }

        private void BindGridView()
        {
            this.GridView1.DataSource = ProductBLL.SelectProduct();
            this.GridView1.DataBind();
        }

        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            //找到这一行的id
            int productID = int.Parse(this.GridView1.Rows[e.RowIndex].Cells[0].Text);
            //调用bll层的方法,传入id,如果返回true,则删除成功
            if (ProductBLL.DeleteProductByProcuctID(productID))
            {
                //提示删除成功之前先重新绑定一下数据
                this.GridView1.DataSource = ProductBLL.SelectProduct();
                this.GridView1.DataBind();
                ClientScript.RegisterStartupScript(this.GetType(), "DelSuccess", "<script>alert('删除成功')</script>");
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "DelFail", "<script>alert('删除失败')</script>");
            }
        }
    }
}

效果图:
在这里插入图片描述
点击删除:
在这里插入图片描述
在这里插入图片描述

接下来 就是讲编辑功能,
在这里插入图片描述

这时页面已经多了一个编辑字段,这时就可以在浏览器中运行了,但是当你点击编辑时,就会报下图所示错误,所以我们就需要去写gridview控件的RowEditing事件。在这里插入图片描述
代码如下:BindGridView()是之前写的方法,用来绑定数据
在这里插入图片描述
这时,点击编辑的时候就不会报错了,但是当我们点击取消的时候,又会报如下错误:
在这里插入图片描述
这时,就需要去RowCancelingEdit中去写代码:
在这里插入图片描述
当我们点击编辑的时候,我们会发现编号这一列也可以进行编辑,但是如果我们不想让它可以编辑,该如何做呢?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这时,当我们点击编辑的时候,编号这一列就不可以进行编辑了

同样的当我们点击更新的时候,会报以下的错误在这里插入图片描述
所以我们需要去找到对应的事件:
在这里插入图片描述
相应的DAL层也应该有对应更新的方法
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值