ASP.NET中GridView控件的几个事件的使用
ASP.NET中GridView控件的几个事件的使用
说明:GridView的数据绑定需要在!ispostback里头,否则在编辑的时候会出现不能获取编辑后的值的情况
一.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);
}
}