当我更新另一个gridview时,ASP.NET Boundfield会更改
我在gridview中有一个boundfield,它通过编程接收其中内容的超链接。它在下拉列表索引更改后获取一个新数据集。数据集的其中一列将链接应用到有数据的字段,并跳过没有数据的字段。您可以在下面看到我应用链接的逻辑:当我更新另一个gridview时,ASP.NET Boundfield会更改,asp.net,gridview,Asp.net,Gridview,我在gridview中有一个boundfield,它通过编程接收其中内容的超链接。它在下拉列表索引更改后获取一个新数据集。数据集的其中一列将链接应用到有数据的字段,并跳过没有数据的字段。您可以在下面看到我应用链接的逻辑: if (e.Row.DataItem != null && int.TryParse(e.Row.Cells[4].Text, out incidents)) { HyperLink incidentsLink = new HyperLink(); in
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的RowDataBound。然后我有另一个连接到另一个下拉列表的gridview。当任一下拉列表更改索引时,它会为相关的gridview获取一个新数据集,并使用更新面板触发ajax更新
当第二个gridview更新时,会删除第一个gridview中的链接。它不会删除保留的文本,但文本不再定位到链接。以这种方式创建并放入GridView的所有链接都会丢失其链接属性,但是使用asp:HyperLinkField创建的字段保持不变。问题是stnNum和date不是为第一个gridview返回的数据集的一部分,因此我必须在gridview已经构建之后将它们添加为链接
我能想到的唯一解决方案是重新定义函数,该函数在每次第二个gridview更新时向gridview添加链接。任何其他解决方案都会很有帮助,或者解释我的链接被删除的原因也会很好。只有在没有任何回发的情况下,才尝试绑定GridView/下拉列表。我相信事后事件会让您的gridview和控件以某种方式丢失数据
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Bind your Grids & Dropdowns here on page load
}
}