0

我有一个非常烦人的问题,我已经挣扎了几个小时了。我在一个页面上有多个 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。

任何想法都会很棒。我可以看到这是非常愚蠢的事情,但我现在几乎整天都盯着代码,而且我没有想法。

4

1 回答 1

1

您应该Page_PreRender为您的代码使用事件,您也可以按照以下方式编写代码else

        if (grvSender.ID == "gvA")
        {
            if (!IsPostBack)
                gvB.DataBind();
        }

        else
        {
            if (IsPostBack)
                gvB.DataBind();
        }
于 2012-05-17T10:15:02.427 回答