当我更新另一个gridview时,ASP.NET Boundfield会更改

时间:2012-05-07 18:13:19

标签: asp.net gridview

我在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);
}

这适用于gridview的OnRowDataBound。然后我有另一个连接到另一个下拉列表的gridview。当下拉列表更改索引时,它会抓取相关网格视图的新数据集,并使用更新面板触发ajax更新。

当第二个gridview更新它会删除第一个gridview中的链接时会发生什么。它不会删除保留的文本,但文本不再锚定到链接。所有链接都以这种方式生成并放入gridviews中,丢失了它们的链接属性,但使用asp:HyperLinkField创建的字段保持不变。问题是stnNum和date不是第一个gridview返回的数据集的一部分,因此我必须在构建gridview之后将它们添加为链接。

我能想到的唯一解决方案是每次第二次gridview更新时重新添加添加到gridview的链接的功能。任何其他解决方案都会有所帮助,或者解释为什么我的链接被删除会很棒。

1 个答案:

答案 0 :(得分:0)

仅在没有任何POSTBACK的情况下尝试绑定GridView / DropDowns。我相信POST Back活动让你的gridview&控制以某种方式丢失他们的数据。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
    // Bind your Grids & Dropdowns here on page load
    }
}