在各类控件中取得主键
GridView:
可以用 int id =Convert .ToInt32(GridView1.DataKeys[i].Value .ToString ());
若不要Value,则GridView1.DataKeys[i].ToString ()为:System.Web.UI.WebControls.DataKey ;
其实DataKeys中存储的是DataKeyNames数据集合,可以指定DataKeyNames的值为:id,name,city,,,等,用时只要用DataKeys[i][0]-对应["id"]即可;
DataList中:
DataKeys[e.item.itemidex];
可以通过赋于控件值的方式,在后台寻找控件以获得其值。
但是最好用DataList的事件-ItemCommand,通过赋于其CommandName,在后台用:
protected void DataList2_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandSource.GetType() == typeof(控件类型))
{
if (((LinkButton)e.CommandSource).CommandName == "命令命名")
{
//新建一个DataTable 以获得id;
DataTable dt = (DataTable)this.DataList1.DataSource;
Response.Write(dt.Rows[e.Item.ItemIndex]["id"].ToString());
}
}
}
Repeater中:
在行中添加删除按钮时,可为其绑定CommandArgument=<%#Eval("id")%>
然后在Repeater控件的ItemCommand事件中用:
if(e.item.FindControl("控件名")!=null)
{
Button btn=e.item.FindControl("控件名") as Button
取得其主键 btn.CommandArgument;
}
Repeater中可以用itemCreate()事件,对每一行进行操作,用时也只需要e.item.FindControl即可;
浙公网安备 33010602011771号