WEB开发网
开发学院网页设计JavaScript 编写组件,使用JavaScript更新UpdatePanel 阅读

编写组件,使用JavaScript更新UpdatePanel

 2010-09-14 13:31:00 来源:WEB开发网   
核心提示:众所周知,UpdatePanel是通过Trigger来更新的,编写组件,使用JavaScript更新UpdatePanel,被设定为Trigger的控件在PostBack之后会被客户端所截获,并且使用XMLHttpRequest对象发送内容,就需要通过在页面中编写tag来设定哪些UpdatePanel也会被更新,我们需

众所周知,UpdatePanel是通过Trigger来更新的。被设定为Trigger的控件在PostBack之后会被客户端所截获,并且使用XMLHttpRequest对象发送内容,然后服务器端由ScriptManager配合,改变Page对象的输出,最后得到部分刷新的效果。但是有时候我们可能需要使用JavaScript来刷新UpdatePanel,这时候就不太方便了。

当然,我们又一个属于Workaround的方法,那就是使用JavaScript来模拟按钮的点击。我们往往会将一个按钮设为某个UpdatePanel的Trigger,然后在客户端模拟它的点击(我后面会提到,其实这是一个比较糟糕的做法,没有必要),使UpdatePanel进行更新。但是这样的做法实在太麻烦了些,也相当的不优雅。

现在我们就来编写一个组件解决这个问题。这个组件的名字叫做JavaScriptUpdater,似乎取得不怎么样——我一直不擅长取名。

首先来定一个需求吧

我们的目的,其实就是为了在客户端生成一个JavaScript代理,提供一个方法,调用它之后能够刷新页面。如果一个UpdatePanel的UpdateMode为Always,那么它一定会更新。如果需要更新UpdateMode为Conditional的UpdatePanel,就需要通过在页面中编写tag来设定哪些UpdatePanel也会被更新。我们需要尽可能的把编程工作变得最小。

不如我们先考虑使用方式,我们编写的这个JavaScriptUpdater在页面中可以这样使用:

JavaScriptUpdater使用方式

<helper:JavaScriptUpdater runat="server" ID="Updater" MethodName="Refresh"
  ResolveUpdatePanel="OnResolveUpdatePanel" Enabled="True">
  <UpdatePanels>
    <helper:UpdatePanel UpdatePanelID="UpdatePanel1" />
    ...
  </UpdatePanels>
</helper:JavaScriptUpdater>

1 2 3 4 5 6  下一页

Tags:编写 组件 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接