网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

分清AJAX中的Extender和Behavior模型

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12

  ASP.NET AJAX提出了多种模型,在客户端有Component、Control和Behavior模型,在端有ScirptControl和Extender模型。这些模型各有各的用途,但是请注意非常重要的一点:客户端模型和端模型是相互独立的。

  ASP.NET AJAX的重要组件之一是Ajax Control Toolkit,其中包括了大量的Extender和Behavior.其中的Extender使用ASP.NET AJAX提出的Extender模型,在客户端使用了Microsoft AJAX Library提出的Behavior模型。Extender和Behavior模型的组合提供了丰富的效果。那么,究竟什么是Extender模型,什么是Behavior模型呢?

  服务器端的Extender控件其实是一个继承了Control类并且实现了IExtenderControl接口的类,我们在开发时也可以直接继承ExtenderControl类,它已经满足了上述条件并且定义了一些常用的方法。Extender控件的作用,简单说来只是想客户端输出脚本,更确切地说,是将需要在页面上执行的脚本告诉ScriptManager,ScriptManager会根据目前的状况(普通加载还是异步回送)选择不同的输出方式。从理论上来说,Extender可以输出任意脚本。因此我们只能说“Ajax Control Tookit中的Extender在客户端使用了Behavior”而不能说“Extender模型在客户端使用了Behavior模型”。

  Behavior模型在客户端提供了丰富的功能,它操作的完全是客户端对象,有些可能会访问Web Service方法,但是这并不影响它仅仅是在客户端工作的这个特性。Behavior完全可以独立于服务器端工作,客户端(浏览器)只是按部就班地执行客户端的代码,它也不会知道究竟是何种服务器技术生成了这些代码。

  因此,我们在使用Ajax Control Tookit时,也必须牢记以下几条:

  Extender模型和Behavior模型没有必然联系。

  Behavior可以独立于Extender执行。

  所有效果是由Behavior提供的。

  关于第1条已经在上文中解释过了。在我之前的一篇文章“ModalUpdateProgress控件”中利用了第2条特性。在 ModalUpdateProgress控件中我使用了ModalPopupBehavior,我的做法是从ModalPopupExtender中提取所有需要的Script文件,并输出至页面,如下:

 private IEnumerable<ScriptReference> GetExtenderReferences()  
{
if (extenderReferences == null)
{
lock (typeof(ModalUpdateProgess))
{
if (extenderReferences == null)
{
extenderReferences =
(new ModalPopupExtender() as IExtenderControl).GetScriptReferences();
}
}
}

return extenderReferences;
}

  因此,我就能够在客户端使用ModalPopupBehavior来构造我所需要的效果了,这里没有Extender,这里只有Behavior.

  关于第3条特性,我认为是最重要的,也是最常利用的一条。我经常会收到例如“如何点击另一个按钮让CollapsiblePanel收缩或打开”或者“如何切换ToggleButton状态”这样的提问,其实这些问题的答案是相同的,使用Script来操作Behavior. Ajax Control Toolkit在服务期端提供的控件实在是太好用了,以至于官方将其托托放放的功能演示了一遍又一遍,乐此不疲。大量的演示却让人忘记了客户段的 Behavior才是关键,Behavior才是让客户端丰富多彩的功臣。

  最近有位朋友问我,如何在客户端使用Authentication Service登陆用户以后,用ModalPopupExtender的方式将结果显示给用户呢?其实关键还是在于使用JavaScript来操作 ModalPopupBehavior.我在这里演示一下使用JavaScript操作ModalPopupBehavior的方法。

  首先,在服务器端放置一个ScriptManager、一个TextBox、一个Panel和一个ModalPopupBehavi

  • 上一篇资讯: 在ASP.NET中使用Memcached
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号