我必须在C#CodeBehind中创建一个GridView
100%。我让它选择一行并使用以下代码回发:
void dataGrid_ItemCreated(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem ||
e.Item.ItemType == ListItemType.Item)
{
e.Item.Attributes.Add("onmouseover",
"this.style.backgroundColor='beige';this.style.cursor='pointer'");
e.Item.Attributes.Add("onmouseout",
"this.style.backgroundColor='#FFFFFF';");
e.Item.Attributes.Add("onclick", "javascript:__doPostBack" +
"('_ctl0$DataGrid1$_ctl" +
((Convert.ToInt32(e.Item.ItemIndex.ToString())) + 2) +
"$_ctl0','')");
}
}
这会回发但是如何获取用户点击的行的ID?
答案 0 :(得分:1)
void dataGrid_ItemCreated(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item)
{
var item = e.Item.DataItem; // <- entity object that's bound, like person
var itemIndex = e.Item.ItemIndex; // <- index
}
}
答案 1 :(得分:0)
您可以将第二个参数中的参数传递给__doPostBack
:
__doPostBack(controlname, yourid);
请填写此处:
e.Item.Attributes.Add("onclick", "javascript:__doPostBack" +
"('_ctl0$DataGrid1$_ctl" +
((Convert.ToInt32(e.Item.ItemIndex.ToString())) + 2) +
"$_ctl0','PUT YOUR VALUE HERE')");
然后您可以通过事件参数访问它。