知识大全 Asp.NET 2.0中无刷新页面的开发
Posted 知
篇首语:生活的真谛从来都不在别处,就在日常一点一滴的奋斗里。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Asp.NET 2.0中无刷新页面的开发相关的知识,希望对你有一定的参考价值。
Asp.NET 2.0中无刷新页面的开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在已经发布的 ASP NET 中 无刷新页面开发相关部分同 beta 有不少改动 而且在越来越多的 Ajax 开发包被开发出来的情况下 ASP NET 自带的无刷新页面技术没有被很多人了解 甚至不少人认为该功能有些 鸡肋 但如果我们仅仅是在程序中加入很少部分的 Ajax 特性 Atlas Ajax Net 等就显得有些 杀鸡用牛刀 的感觉了 而且 我认为使用 ASP NET 提供的方法进行开发并不很复杂 相反 使用很少的代码就可以做出来很棒的效果!
下面我来一步一步的带大家开发无刷新的页面!
第一步 实现 ICallbackEventHandler 接口
ICallbackEventHandler接口位于System Web UI命名空间下 在beta 时 ICallbackEventHandler只包含一个RaiseCallbackEvent方法 即处理回调事件 又返回处理结果 在正式版中 它变成了包含GetCallbackResult和RaiseCallbackEvent两个成员方法 第一个用来返回回调事件的结果 第二个用来出来回调事件 这个变化主要是为了编写Web控件而做的改动 具体可以看一下GridView等控件中的实现代码
建立一个 Web 网站 我们来修改 default aspx cs 文件
public partial class _Default : System Web UI Page ICallbackEventHandler private string str; public void RaiseCallbackEvent(string eventArgument) //可以根据传递的参数不同 调用不同的处理逻辑 str = 从服务器端返回的内容 + eventArgument; public string GetCallbackResult() return str;第二步 注册回调方法
我们在 default aspx 页面中添加一个 TextBox 一个 Label 和一个 Html 控件 Button 并给 Button 添加 onclick 事件
<asp:TextBox ID= TextBox runat= server ></asp:TextBox> <input id= Button type= button value= 提交到Label onclick= CallServer(TextBox Label ) /><br/> <asp:Label ID= Label runat= server Text= Label : ></asp:Label> <script type= text/javascript > //由button调用 function CallServer(inputcontrol context) context innerHTML = Loading ; arg = inputcontrol value; //注册回调方法 <%= ClientScript GetCallbackEventReference(this arg ReceiveServerData context )%>; //在回调方法中注册的接收返回结果的函数 function ReceiveServerData(result context) context innerHTML = result; </script>好了 一个无刷新的页面就开发完了 它可以将你在 TextBox 中输入的文字 通过服务器代码写回到页面的 Label 中 是不是很简单?你可以运行一下你的程序看看效果啦!
下面我们来分析一下这些代码
首先 我们看
<%= ClientScript GetCallbackEventReference(this arg ReceiveServerData context )%>; ClientScript是System Web UI Page对象的一个属性 它是System Web UI ClientScriptManager对象 用于管理客户端脚本 GetCallbackEventReference方法用于注册一个服务器端事件的客户端回调 它的第四个参数 Context 非常重要 但在MSDN中并没有相关的例子和详细的说明 在我上面给的代码中可以看到 调用CallServer方法时 传递的Context参数就是Label 而ReceiveServerData的第二个参数 Context 就是被传递过来的Label 在我的例子中 Context被我用于设定一个用来显示服务端返回结果的控件 其实 你可以将任意的对象赋值给Context 它都会被传递给本地端处理回调返回结果的函数 这样 你就可以根据调用前指定的 上下文 灵活的操作返回结果了!在我给出的完整例子中 你可以看到一个使用Context做的无刷新显示GridView的例子在这里我要说个题外话 Context这么重要的参数在MSDN中不但没有详细的说明 而且VS 中文正式版MSDN中关于回调的例子竟然还是beta 时的实现!这个版本的MSDN可以说是我用过的版本中品质最差的 不过现在的MSND可以用 相当 庞大来形容 出错也是在所难免的 希望下个版本的MSND会好一些
OK 在ASP NET 中开发具有Ajax特性的东东不难吧!其实就是两步
在Server端实现ICallbackEventHandler接口 在接口包含的方法中根据传递的参数分别调用不同的处理方法 然后返回结果;
在Client端注册回调函数(当然你也可以在Server端注册) 然后实现处理回调结果的函数 其中 如果对Context能干灵活运行 你就可以做出非常好的效果了
在我给出的完整例子中 你们可以看到更完整的处理逻辑和更漂亮的特效 当然 增加的代码还是很少的!
有将近一年没有写Blog了 手也比较生了 以前cnblogs的文章我是基本上天天都看的 现在一两个星期看一次就不错了 还是走马观花的浏览几篇而已 如今每天都是为了生活而奔波 人在江湖 身不由己呀!
cha138/Article/program/net/201311/12793相关参考
ASP.NET页面刷新和定时跳转 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 刷新的实现方法
用脚本解决ASP.NET页面刷新问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 用ASPNE
ASP.NET刷新页面的六种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第一privat
不刷新页面的情况下调用ASP.NET 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! RS技术的一
ASP.NET2.0异步页面原理浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 与ASPNE
ASP.NET2.0页面框架简要慨述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET
在ASP.NET2.0中使用页面导航控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 几乎每个
知识大全 asp.net 2.0中使用sitemapDATAsource做页面导航
asp.net2.0中使用sitemapDATAsource做页面导航 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
Asp.net2.0自定义控件开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! (一)概述
ASP.NET2.0服务器控件开发精要 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 利用ASP