我在 gridview 中有一个boundfield,它以编程方式接收其中内容的超链接。它在下拉列表索引更改后获取一个新数据集。数据集的其中一列会将链接应用到包含数据的字段并跳过那些没有,您可以在下面看到我应用链接的逻辑:
if (e.Row.DataItem != null && int.TryParse(e.Row.Cells[4].Text, out incidents))
{
HyperLink incidentsLink = new HyperLink();
incidentsLink.ForeColor = System.Drawing.Color.Blue;
incidentsLink.NavigateUrl = "~/somesite.aspx?no=" + stnNum + "&dt=" + date;
incidentsLink.Text = e.Row.Cells[4].Text;
e.Row.Cells[4].Controls.Add(incidentsLink);
}
这适用于网格视图的 OnRowDataBound。然后我有另一个网格视图,它连接到另一个下拉列表。当任一下拉列表更改索引时,它会为相关的 gridview 抓取一个新数据集并使用更新面板触发 ajax 更新。
当第二个 gridview 更新它会删除第一个 gridview 中的链接时会发生什么。它不会删除保留的文本,但文本不再锚定到链接。以这种方式创建并放入网格视图的所有链接都将失去其链接属性,但是使用 asp:HyperLinkField 创建的字段保持不变。问题是 stnNum 和 date 不是为第一个 gridview 返回的数据集的一部分,所以我必须在 gridview 已经构建后将它们添加为链接。
我能想到的唯一解决方案是每次第二个 gridview 更新时重新触发将链接添加到 gridview 的函数。任何其他解决方案都会有所帮助,或者解释为什么我的链接被删除会很好。