我根据数据库中的数据动态创建多个网格视图。 我在foreach语句中生成如下gridview:
GridView gdv = new GridView();
gdv.ID = "gdv" + i.ToString();
gdv.SelectedIndexChanged += new EventHandler(gdv_SelectedIndexChanged);
gdv.RowDataBound += gdv_RowDataBound;
RowDataBound如下所示:
protected void gdv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(((GridView)sender), "Select$" + e.Row.RowIndex);
}
}
这一切都按预期工作,但((GridView)发送者)返回以下值:
'gdv00'
此链接工作需要返回的内容如下:
'ctl00$ctl00$MainContent$Main$gdv0'
可以肯定这与母版页有关吗?但不确定如何在rowdatabound事件中正确引用它?
答案 0 :(得分:0)
ctl00的ID $ ctl00 $ MainContent $ Main $ gdv是网格控件的UniqueID属性(客户端ID由_分隔)。这是呈现给浏览器的ID。我认为这里的问题是控件没有立即添加到控件树中,这对于过去的某些人来说是一个问题。试着这样做:
GridView gdv = new GridView();
gdv.ID = "gdv" + i.ToString();
panel.Controls.Add(gdv);
//set grid props
HTH。