asp.net GridView控件的几个事件的用法详解

发布时间:2019-08-11编辑:脚本学堂
说明:GridView的数据绑定需要在!ispostback里头,否则在编辑的时候会出现不能获取编辑后的值的情况。

gridview控件的事件说明。

一、GridView主键的设置:
 

复制代码 代码示例:
GridView1.DataKeyNames = new string[] { "Jinchu_Time" };
 GridView1.DataBind();

二、GridView分页事件的处理方法:
 

复制代码 代码示例:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)//翻页
    {
 GridView1.PageIndex = e.NewPageIndex;
 cd.sql_gridview(str_select,GridView1,"WPjinchu_dj");
      
    }

三、GridView删除事件的处理方法:
 

复制代码 代码示例:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)//记录删除
{
 string str_1 = GridView1.DataKeys[e.RowIndex].Values[0].ToString();//获取Gridview的主键
 string str_delete = "delete from WPjinchu_dj where Jinchu_Time=" + str_1;
 Response.Write("<script>alert('" + cd.sql_xiugai(str_delete) + "')</script>");
}

四、GridView编辑事件的处理方法:
 

复制代码 代码示例:
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
 GridView1.EditIndex = e.NewEditIndex;
 data_lj.sql_gridview(str_select,GridView1,"电费清单 ");
}

五、GridView更新事件的处理方法:
 

复制代码 代码示例:
protected void GridView2_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
 string str_1 = GridView2.DataKeys[e.RowIndex].Values[0].ToString();
 string str_2 = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();//取得文本框中输入的内容
 string str_3 = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();//取得文本框中输入的内容
  string str_update = "update 电费清单 set 寝室号='" + str_2 + "', 用电量='" + str_3 + "' where 记录编号=" + str_1 + "";
  Response.Write("<script>alert('"+cd.sql_xiugai(str_update)+"')</script>");//调用更新数据库的公用方法更新数据库,返回更改结果
}

六、GridView编辑取消事件的处理方法:
 

复制代码 代码示例:
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
 GridView1.EditIndex = -1;
 data_lj.sql_gridview(str_select,GridView1,"电费清单");
    }

七、GridView的超级链接HyperLinkField使用:
HyperLinkField可以在GridView控件中提供一个超链接,而且可以传递参数。
 

复制代码 代码示例:
<asp:HyperLinkField DataNavigateUrlFields="aa,bb" DataNavigateUrlFormatString="Default4.aspx?id={0}&name={1}" DataTextField="aa" HeaderText="查看" Text="详细信息" />
 

DataNavigateUrlFields指定的是绑定到该超链接的数据库字段,这里是aa和bb.

DataNavigateUrlFormatString指定的是对绑定到超链接的NavigateUrl属性的值的应用格式也就是链接字符串,这里是Default4.aspx?id={0}&name={1},id和name是传递的两个参数,这里也就是aa和bb。

在下一个页面的Page_Load方法中根据接收的参数查询出当前项目的详细信息。

GridView的按钮ButtonField使用:
ButtonField单击事件的触发是通过GridView的RowCommand事件,在这个事件中可以捕获到用户对ButtonFiled按钮的单击事件。
 

复制代码 代码示例:
<asp:ButtonField HeaderText="编辑" Text="修改" ButtonType="Button" CommandName="xiugai" />
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
 if (e.CommandName == "xiugai")     //ButtonField控件的CommandName
 {
     int index=Convert.ToInt16(e.CommandArgument);
   string id=Server.UrlEncode(GridView2.Rows[index].Cells[1].Text);
     string aa=Server.UrlEncode(GridView2.Rows[index].Cells[2].Text);
     string bb=Server.UrlEncode(GridView2.Rows[index].Cells[3].Text);
     Response.Redirect("Default4.aspx?id="+id+"&aa="+aa+"&bb="+bb);
 }
}