我在两个单独的项目中遇到过asp.net UpdatePanels的烦人错误。如果您启用了某种启用autopostback的控件,则可能导致更新面板中的所有控件都设置为visible = false,从而导致更新为空的面板。
当您将autopostback控件更改回将重新启用更新面板中所有控件的位置时,它只是不会回拨到服务器并且更新面板不会更新。
如果您在同一页面上执行任何其他回复操作,则会神奇地显示更新面板内容。就好像asp.net已经决定更新面板是空的,因此没有必要进行回调,即使进行回调会使更新面板填满内容。
唯一的方法是向控件添加display:none
样式,而不是设置visible=false
属性。
然后它工作正常。
还有其他人遇到过这个问题吗?这是我怀疑的错误还是我可能做错了?我没有时间发布示例代码,因为我正在使用的代码太过于包含在其他未实现的内容中,如果人们认为这将有助于我创建一个简单的示例并在我有时间时发布它。
答案 0 :(得分:1)
AutoPostBack =“true”的控件必须设置为UpdatePanel的 AsyncPostBackTrigger 。
答案 1 :(得分:1)
在更新面板中放置触发asyncpostback的控件可以解决此问题。我肯定会说这是一个错误,因为唯一的区别是当控件在updatepanel中时它可以工作,而当它在更新面板之外时它不起作用。
答案 2 :(得分:0)
我遇到了同样的问题。 我有一个更新面板和下拉列表,其中包含enable = false。当用户在UpdatePanel中执行AsyncPostBack时,UpdatePanel外部的下拉列表将变为enable = true,并执行任何代码。当我在UpdatePanel中添加这些下拉列表时 - 一切正常。我不知道为什么。