`
feiliboos
  • 浏览: 659435 次
文章分类
社区版块
存档分类
最新评论

ASP.NET AJAX 服务器端编程学习小结

 
阅读更多

最近开始了ASP.NET AJAX的全面学习。在服务端编程这块主要有几个服务器控件负责,他们分别为:ScriptManager,Timer,UpdatePanel,UpdateProgress.

先来说说ScriptManager.它有个方法registerAsyncPostBackControl(控件),可以注册页面上的任何控件为异步传送按钮。还有个方法叫AsyncPostBackError的来着,在这个方法里面可以定义属于自己的错误显示方式。

UpdatePanel,这个控件的用法有很多种,并且有几个属性是非常重要的。它们分别是:UpdateMode,ChildrenAsTrigger,Triggers.通过这几个属性的组合能产生很多的异步页面更新的效果.UpdateMode的值可以为:always,conditional;ChildrenAsTrigger的属性值可以为:True,False.Triggers的属性值为一个包含两种类型的Trigger集合(AysncPostBackTrigger,PostBackTrigger).

现在假设有个UpdatePanel控件,我来分别设置这些属性值的组合。

UpdateMode(always)+ChildrenAsTrigger(true):不论引发异步传送的控件是否放在UpdatePanel里面,该UpdatePanel都会更新.

UpdateMode(always)+ChildrenAsTrigger(FALSE):系统不允许这样设置

UpdateMode(Conditional)+ChildrenAsTrigger(false):放在该Updatepanel里面的控件无法引发异步传送,此时如果想要达到更新该UpdatePanel控件的效果,有两个方法:1.用UpdatePanel的Update()方法2.设置UpdatePanel的Triggers属性。

方法一: 该方法有个局限型,不能是该UpdatePanel控件里面的控件引发的事件,因为里面控件不能进行异步事件。只有通过ScriptManager的registerAsyncPostBackControl(控件)注册一个可以异步回发的控件,然后在他的触发事件里面引用该UpdatePanel的Update()方法达到更新该UpdatePanel的效果。

方法二:设置成Trigger的控件可以在该UpdatePanel里面也可以再它外面,如果设置成功的话,通过触发这个设置成该UpdatePanel的Trigger的控件,就能达到更新的效果。

UpdateMode(Conditional)+ChildrenAsTrigger(true):放在该UpdatePanel里面的控件能引发异步会发,而且会将结果更新到该UpdatePanel里面,该UpdatePanel外面的控件也可以通过设置该UpdatePanel的trigger属性达到效果。

UpdateProgress控件。该控件的作用为当程序正在进行异步回发的时候,为了让等待的结果呈现给用户之前显示的一种友好界面.

它的associatedUpdatePanelID属性可以设置为与它相搭的UpdatePanel,如果该UpdatePanel再进行异步回发那么该UpdateProgress就会显示它的友好界面。如果与其相搭的UPdatePanel控件是嵌套结构的话,那么里层的UpdatePanel控件更新的话,该UpdatePanel也会显示的

<updatePanle1>

<updatePanle2>

<updatePanle3></updatePane3>

</updatePanel2>

</updatePanel1>

<updateProgress associatedUpdatePanelID=UpdatePan2/>

那么当UpdatePanel3进行更新的话,该UpdateProgress也是会显示出来的。

Timer:这个控件主要是用来进行循环回发的,它的属性InterVal属性为间隔多长时间引发它的trck事件。

timer可以放在UpdatePanel里面也可以放在外面,但如果要达到异步回发的效果的话,可以用registerAsyncPostBackControl(控件)来注册它。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics