刚刚在开发中发现,在使用 ASP.NET AJAX 的 UpdatePanel 控件时,其内部不能使用 JavaScript 语言来写页面,否则的话,当 UpdatePanel 更新其内容时,使用 JavaScript 所写的页面部分将不会重新写入。

以下为一个简单的例子:

 1

没点按钮之前的截图:

使用UpdatePanel控件要注意的一个问题


点击按钮之后的截图:

 

使用UpdatePanel控件要注意的一个问题

 


之所以会如此,应当是由于 UpdatePanel 的工作机制使然,script 脚本所输出的部分毕竟不是控件嘛!

不过,在实际开发中往往还是会碰到类似这种情况的,比如我就是在 UpdatePanel 控件中使用了一个用户控件,该控件内部使用 JavaScript 绘制了一个 div 并直接写入页面(即不在任何函数内部),此时当 UpdatePanel 更新时,该 div 就不会被写入,所以就出错了。

解决的方法就是改造出问题的用户控件,要么不再使用 JavaScript 去直接绘制页面,比如使用 Literal 控件代替;要么将 JavaScript 代码移至 UpdatePanel 之外,比如使用 ClientScriptManager 的几个脚本注册函数将其写到页面中去。

相关文章:

  • 2022-02-13
  • 2021-12-22
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-12
  • 2022-01-06
相关资源
相似解决方案