这是使用Datakey对象的一个实例:
protected void Page_Load(object sender, EventArgs e)//页面初始化
{
bindUser();
}
protected void bindUser()//将GridView与数据表绑定
{
string sql = "select * from WL_User";
gvUser.DataSource = dataOperate.getDataset(sql, "WL_User");//gvUser是GridView的一个实例
gvQyUser.DataKeyNames = new string[] { "ID" };
gvUser.DataBind();
}
protected void gvUser_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string ID = gvUser.DataKeys[e.RowIndex].Value.ToString();//获得所要删除行在数据表中对应的ID值,然后删除
string sql = "delete from WL_User where ID=" + ID;
if (Operatedata.opetateSQL(sql))
{
Page.RegisterStartupScript("true", "<script>alert('删除成功!')</script>");
}
else
{
Page.RegisterStartupScript("false", "<script>alert('删除失败!')</script>");
}
bindUser();
}
DataKey对象用法说明:
DataKey 类用于表示数据绑定控件中某个记录的主键。记录的主键可以由数据源中的一个或多个字段组成。
通常,当设置了数据绑定控件的 DataKeyNames 属性时,控件自动生成 DataKey 对象
当将数据表绑定到GridView时,设置数据表的一个属性项为DataKeyNames,本例是将表中的ID属性项赋给它。
RowDeleting 事件的GridViewRowEventArgs 参数e有一个属性 Row,e.Row就是当前行的引用,可以用RowIndex属性来取得该行的索引,而DataKeys是GridView的主键,可以使用DataKeys[行号]的方式取得,它返回一个DataKey对象,然后就可以用DataKey对象的Value属性得到该行的主键值。本例中就是获得所选GridView行对应的ID值。