五、 从JavaScript脚本中调用GetSlides() web方法
现在,既然我们已经准备好GetSlides() Web方法,那么接下来,我们需要从客户端JavaScript脚本中调用它。现在,切换到Web页面的HTML源视图并且在web表单的<HEAD>节中添加下列<script>块:
<script type="text/javascript">
function pageLoad(){
var img=$get("Image1");
img.style.visibility="hidden";
PageMethods.GetSlides(OnSuccess,OnError,OnTimeOut);
}
function OnSuccess(result){
slideshow.set_Slides(result);
slideshow.set_Delay(2000);
slideshow.Play();
}
function OnError(result){
alert(result.get_message());
}
function OnTimeOut(result){
alert(result);
}
</script>
任何时候当一个web表单加载到客户端时,该<script>块包含的pageLoad()函数将被AJAX框架自动调用。它非常类似于ASP.NET的服务器端Page_Load事件。在这个pageLoad()方法中,我们用于实现暂时的图像隐藏。这样做的目的是为了避免浏览器显示不连续的图像标识。然后,借助于内置的类—PageMethods,pageLoad()函数调用GetSlides() web方法。在ASP.NET AJAX中,所有的执行都是异步的,因此,GetSlides()方法将接受一个回调函数—在成功时执行OnSuccess;出现错误时执行OnError;而在超时条件下则执行OnTimeOut。
在此,OnSuccess()函数接受一个由GetSlides() web方法返回的字符串数组并且相应地设置SlideShow类的Slides属性。然后,它把幻灯片的延迟播放时间设置为2000毫秒。最后,它调用SlideShow类的Play()方法开发播放幻灯片。
对于OnError()和OnTimeOut()方法,它们只用于简单地显示各自相应的错误消息。
接下来,按如下所示修改HTML按钮控件标记:
<input id="Button1" ... onclick="slideshow.ShowFirst()" />
<input id="Button2" ... onclick="slideshow.ShowPrevious()" />
<input id="Button5" ... onclick="slideshow.Pause()"/>
<input id="Button6" ... onclick="slideshow.Play()"/>
<input id="Button3" ... onclick="slideshow.ShowNext()" />
<input id="Button4" ... onclick="slideshow.ShowLast()"/>
如你所见,这些按钮的onclick事件简单地调用SlideShow类的各个方法。
好了,至此,整个示例编写结束!最后,按F5运行上面的web表单,你应该会看到我们的幻灯片在浏览器中开始播放了。
六、 小结
再次想说的是,本文中的例子仅展示了微软ASP.NET Ajax 1.0框架编程的非常基础的一面,如果你真对这个框架感兴趣,那么请抓紧动手试一下吧!