大 哥

导航

在各类控件中取得主键

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即可;
 

posted on 2010-01-18 13:44  VIP-爷  阅读(169)  评论(0)    收藏  举报