0

我在 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 的函数。任何其他解决方案都会有所帮助,或者解释为什么我的链接被删除会很好。

4

1 回答 1

0

仅在没有任何 POSTBACK 时尝试绑定 GridView/DropDowns。我相信 POST Back 事件会让您的 gridview & Controls 以某种方式丢失他们的数据。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
    // Bind your Grids & Dropdowns here on page load
    }
}
于 2012-05-07T20:18:27.437 回答