【发布时间】:2012-05-17 10:08:35
【问题描述】:
我有一个非常烦人的问题,我已经为此苦苦挣扎了几个小时。我在一个页面上有多个 asp.net GridView 控件。其中一个网格(网格 B)依赖于另一个网格(网格 a)以使其数据正确更新。
我的问题是这样的:
当我在 if(!IsPostback) 中执行 gridB.Databind() 时,网格 B 的功能可以工作,但网格不会随着网格 A 中新添加的记录而更新。
当我在不包含回发检查的其他任何地方执行 gridB.Databind() 时,网格 B 中的数据会随着网格 A 中新添加的记录正确更新,但随后网格 B 的功能不再起作用。
例子:
// Functionality for dropdownlist etc works correctly, but new data from gvA doesn't show in gvB
if (grvSender.ID == "gvA")
{
if (!IsPostBack)
gvB.DataBind();
}
// Functionality for dropdownlist etc no longer works correctly, but new data from gvA shows correctly in gvB
if (grvSender.ID == "gvA")
{
if (IsPostBack)
gvB.DataBind();
}
我已经在人类已知的每个可能的地方调用了 gvB 的数据绑定方法,但同样的问题仍然存在……修复问题 A 给我带来问题 B,修复问题 B 给我带来问题 A。
任何想法都会很棒。我可以看到这是非常愚蠢的事情,但我现在几乎整天都在盯着代码,我没有想法。
【问题讨论】:
-
您提供的代码是否在Page_Load事件中?
-
我很困惑 - 如果 (!ispostback) 永远不会起作用,因为这意味着它只会在第一次加载页面时发生,因此你为什么要检查回发?
-
如果你总是要绑定它,为什么还要检查
PostBack? -
我最终将绑定添加到我可以检查的任何内容中,以检查为什么 A 或 B 不起作用(因此在示例中添加了它)。 jams 提供的解决方案无需任何回发检查即可工作。我只是绑定网格,我的两个问题都解决了。
标签: c# asp.net data-binding gridview