动态网格视图-如何在行绑定引用

本文关键字:绑定 引用 网格 视图 动态 | 更新日期: 2023-09-27 18:16:04

我正在动态创建几个网格视图,这取决于数据库中的数据。我在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事件中正确引用这一点?

动态网格视图-如何在行绑定引用

ctl00$ctl00$MainContent$Main$gdv的ID是网格控件的UniqueID属性(客户端ID以_分隔)。这是呈现给浏览器的ID。我认为这里的问题是控件没有立即添加到控件树中,这在过去一直是一个问题。试试这样做:

GridView gdv = new GridView();
gdv.ID = "gdv" + i.ToString();
panel.Controls.Add(gdv);
//set grid props

HTH .