Asp.net GirdView进阶用法

今天我们来探讨下GridView的更进一步的用法:

  1. 通过行列获取单元格数据

      如果我们需要获取GridView控件中某个单元格的数据,可以采用如下思路。首先,在GridView控件的    SelectedIndexChanging事件中,通过Int index=e.NewSelectedIndex获取选中行的索引,然后通过gvShow.Rows[index].Cells[0].Text;获取选中行对应列的值。

  1. GridView两个重要属性

属性名称

说明

DataKeyNames

用来获取或指定GridView中主键字段名称的数组,多个主键字段之间使用逗号隔开

DataKeys

用来获取GridView中使用DataKeyNames设置的每一行主键值的对象集合

        使用代码设置绑定主键

        GridView控件ID.DataKeyNames=new string[]{

         “主键字段名称1”,”主键字段名称2”,….

       }

     当我们对GridView设置了主键值后,我们就可以通过一定的方式将其获取出来!

      01.单个主键字段的获取方法:

       GridView控件ID.DataKeys[index].Value.ToString();

     02.多个主键字段的获取方法

       GridView控件ID.DataKeys[index][“主键字段名称”].ToString();

      或

      GridView控件ID.DataKeys[index].Values[“主键字段名称1”].ToString();

DataKeys值的作用:

   我们可以通过使用DataKeys值实现值在页面间的传递。

   在GridView的SelectedIndexChanging事件中,我们可以通过如下代码获取选中行的主键,并且将主键值传递到其他页面:

1 Int index=e.NewSelectedIndex;
2 
3 String key=this.gvHR.DataKeys[index].Value.ToString();
4 
5 Response.Redirect(“modify.aspx?id=”+key);
  1. GridView中事件处理机制

      RowEditing事件:

属性名称

说明

NewEditIndex

获取或设置所编辑的行的索引

Cancel

将Cancel属性设置true,可以取消编辑操作

         需要注意的是:如果将GridView的EditIndex设置为-1时,没有编辑行。

        设置编辑行索引的具体代码:

          在GridView的RowEditing事件中,书写如下代码:

         //设置编辑行索引

            this.gvHR.EditIndex=e.NewEditIndex;

        //由于页面回发,页面无法保存对象的状态,需重新绑定

          MyDBBind();

        当我们点击编辑按钮后,界面上会自动出现

        

       更新和取消按钮,此时我们如果点击取消,会出现如下异常信息,

 

       这时,我们可以在GridView的RowCancelingEdit事件中输入如下代码:

       gvHR.EditIndex = -1;

       LoadData();来解决。

      当我们点击更新按钮时,会出现如下提示:

 

      这时,我们需要在RowUpdating事件中书写代码:

    RowUpdating事件

      我们可以在RowUpdating事件中书写如下代码:

复制代码
 1   int index= this.gvHR.EditIndex;
 2 
 3             string userid = gvHR.DataKeys[index].Value.ToString();
 4 
 5             string username = (gvHR.Rows[index].FindControl("txtName") as TextBox).Text;
 6 
 7             string gender = (gvHR.Rows[index].FindControl("ddlGender") as DropDownList).SelectedValue;
 8 
 9             string phone = (gvHR.Rows[index].FindControl("txtTelephone") as TextBox).Text;
10 
11             string post = (gvHR.Rows[index].FindControl("ddlPost") as DropDownList).SelectedValue;
12 
13             string address = (gvHR.Rows[index].FindControl("txtAddress") as TextBox).Text;
14 
15             UpdateData(userid,username,gender,phone,post,address);
16 
17             Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
18 
19     "info", "<script>alert('更新成功|!')</script>");
20 
21  
22 
23             gvHR.EditIndex = -1;
24 
25             LoadData();
复制代码

 

      这样,我们就实现了编辑状态下数据的更新和取消。其实,我们只要掌握了GridView的事件机制,并且能够在对应的事件中书写代码,就不会出现异常。

      当然,GridView的事件还有很多,这里我们只是拿出典型的几个事件进行了说明,后续对GridView的内容还会继续更新。

标签