代码之家  ›  专栏  ›  技术社区  ›  Coding Flow

ASP.NET UpdatePanel控件中可能存在错误?

  •  4
  • Coding Flow  · 技术社区  · 15 年前

    我在两个单独的项目中遇到了ASP.NET更新面板的一个令人讨厌的错误。如果您有某种启用了AutoPostback的控件,它会导致更新面板中的所有控件都设置为Visible=false,从而导致一个空的更新面板。

    当您将autopostback控件更改回将重新启用“更新”面板中所有控件的位置时,它不会简单地回拨服务器,更新面板也不会更新。

    如果您做了任何其他在同一页上回调的事情,那么更新面板的内容就会神奇地出现。就好像ASP.NET已经决定了更新面板是空的,所以没有必要进行回调,即使进行回调会使更新面板充满内容。

    唯一的解决方法是添加 display:none 到控件而不是设置 visible=false 属性。
    然后就可以了。

    还有人遇到过这个问题吗?这是我怀疑的一个bug,还是我做错事的可能性?我现在没有时间发布示例代码,因为我使用的代码太过被其他未更改的内容所包围,如果人们认为这将有助于我创建一个简单的示例,并在我有时间的时候发布它。

    3 回复  |  直到 14 年前
        1
  •  1
  •   DavRob60    15 年前

    控件 autopostback=“真” 必须设置为 异步回发 更新面板的。

        2
  •  1
  •   Coding Flow    15 年前

    将触发AsyncPostback的控件放回更新面板中可以修复此问题。我敢肯定地说这是一个bug,唯一的区别是,当控件在update panel中时,它可以工作,而当它在updatepanel之外时,它不能工作。

        3
  •  0
  •   user660976    14 年前

    我也有同样的问题。 我有一个更新面板和DropDownlists,其enable=false。当用户在updatepanel中执行asyncPostback时,updatepanel外部的下拉列表将变为enable=true,而不执行任何代码。当我在updatepanel中添加这些下拉列表时-一切正常。我不知道为什么。

    推荐文章