C# 动态超链接在gridview中不可见
我试图使用下面的代码在动态gridview的每一行上显示动态超链接,但它没有显示超链接C# 动态超链接在gridview中不可见,c#,asp.net,C#,Asp.net,我试图使用下面的代码在动态gridview的每一行上显示动态超链接,但它没有显示超链接 gvdates.DataSource = xyz; var m = tool.ToolsID; HyperLink hp = new HyperLink(); hp.Text = e.Row.Cells[i].Text; hp.NavigateUrl = "~/OutageInfo.aspx?name=m;" + hp.Text; e.Row.Cells[i].Controls.Add(hp); gvdate
gvdates.DataSource = xyz;
var m = tool.ToolsID;
HyperLink hp = new HyperLink();
hp.Text = e.Row.Cells[i].Text;
hp.NavigateUrl = "~/OutageInfo.aspx?name=m;" + hp.Text;
e.Row.Cells[i].Controls.Add(hp);
gvdates.DataBind();
e.Row.Cells[i].Controls.Add(gvdates);
您应该在中创建动态控件,而不是因为每次回发时都会触发此事件,而
RowDataBound
仅在GridView
将数据绑定到其数据源时才会触发
必须在每次回发时使用与以前相同的ID重新创建动态创建的控件,然后在中保留它们的值,事件将正确触发
因此,您应该在RowCreated
中创建它们,并在RowDataBound
中“填充”它们(例如超链接的NavigateUrl
,如果它来自数据源)
但是,在对GridView
进行数据绑定后,应添加动态控件。所以这似乎毫无意义(无论e
是什么):
什么是e
?这段代码在哪里?gvdates.databind()?我还没有发布完整的代码。我在问有关超链接的问题part@user635545:您发布了不存在的代码,但您希望我们修复现有代码。下面我已经尽了最大努力。gvdates是一个gridview,我正在使用它绑定列。
e.Row.Cells[i].Controls.Add(hp);
gvdates.DataBind();