【问题标题】:ASP.NET Boundfield changes when I update another gridview当我更新另一个 gridview 时 ASP.NET Boundfield 发生变化
【发布时间】:2012-05-07 18:13:19
【问题描述】:

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

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:

    仅在没有任何 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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-01-15
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多