您的位置:首页 > 编程语言 > ASP

新瓶旧酒ASP.NET AJAX(6) - 客户端脚本编程(Sys.WebForms命名空间下的类Sys.Serialization命名空间下的类)

2007-06-19 08:35 423 查看
[索引页]

[源码下载]

[align=center]新瓶旧酒ASP.NET AJAX(6) - 客户端脚本编程(Sys.WebForms命名空间下的类Sys.Serialization命名空间下的类) [/align]

作者:webabcd

介绍

Sys.WebForms命名空间下的类都是与局部刷新相关的类。PageRequestManager类,其中有5个事件:initializeRequest事件、beginRequest事件、endRequest事件、pageLoading事件和pageLoaded事件。与这5个事件相关的还有5个事件参数类:InitializeRequestEventArgs类、BeginRequestEventArgs类、EndRequestEventArgs类、PageLoadingEventArgs类和PageLoadedEventArgs类。Sys.Serialization命名空间下只有一个类:Sys.Serialization.JavaScriptSerializer类。它用于在ECMAScript(JavaScript)对象与JSON格式数据之间进行转换。

1、PageRequestManager Class

·initializeRequest Event - 异步回发的初始化时触发

·beginRequest Event - 异步回发开始前触发

·endRequest Event - 异步回发完成后触发

·pageLoading Event - 异步回发完成后页面加载开始前触发

·pageLoaded Event - 异步回发完成后页面加载完成后触发

·Sys.WebForms.PageRequestManager.getInstance(); - 返回页面的PageRequestManager类的实例

·Sys.WebForms.PageRequestManager.getInstance().abortPostBack(); - 终止所有异步回发

·isInAsyncPostBack属性 - 是否正在异步回发过程中

2、InitializeRequestEventArgs Class

·postBackElement属性 - 产生回发事件的元素

·InitializeRequestEventArgs继承自Sys.CancelEventArgs,所以具有cancel属性 - 是否取消回发

3、BeginRequestEventArgs Class

·postBackElement属性 - 产生回发事件的元素

4、EndRequestEventArgs Class

·error属性 - Error对象

·errorHandled属性 - 异常是否已经被处理

·response属性 - Sys.Net.WebRequestExecutor对象

·dataItems属性 - 服务端注册的DataItem

5、PageLoadingEventArgs Class

·panelsUpdating属性 - 准备更新的UpdatePanel数组(div元素)

·dataItems属性 - 服务端注册的DataItem

6、PageRequestManager Class

·panelsUpdated属性 - 更新完毕的UpdatePanel数组(div元素)

·dataItems属性 - 服务端注册的DataItem

7、Sys.Serialization.JavaScriptSerializer Class

·serialize方法 - 序列化(参数:ECMAScript(JavaScript)对象;返回值:JSON字符串)

·deserialize方法 - 反序列化(参数:JSON字符串;返回值ECMAScript(JavaScript)对象:)

8、其它请查看官方文档

示例

InitializeRequest.aspx

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">

<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="0" DynamicLayout="false">

<ProgressTemplate>

Loading </ProgressTemplate>

</asp:UpdateProgress>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<%= DateTime.Now %>

<br />

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

  

<asp:Button ID="Button2" runat="server" Text="cancel属性测试" OnClick="Button1_Click" />

</ContentTemplate>

</asp:UpdatePanel>

<p>

<textarea id="TraceConsole" style="width: 500px; height: 300px;"></textarea>

</p>

</asp:Content>

运行结果

1、单击“Button”按钮

ctl00_ContentPlaceHolder1_Button1

false

2、在Loading的过程中再次单击“Button”按钮

ctl00_ContentPlaceHolder1_Button1

true

3、单击“cancel属性测试”按钮

没有反应

BeginRequestAndEndRequest.aspx

注:在ScriptManager的OnAsyncPostBackError事件中输入代码:ScriptManager1.AsyncPostBackErrorMessage = e.Exception.Message + "(母版页的ScriptManager格式化错误信息)";

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server">

<ContentTemplate>

<%= DateTime.Now.ToString() %>

<br />

<asp:Button ID="Button1" runat="server" Text="触发异常" OnClick="Button1_Click" />

  

<asp:Button ID="Button2" runat="server" Text="RegisterDataItem测试" OnClick="Button2_Click" />

</ContentTemplate>

</asp:UpdatePanel>

<p>

<textarea id="TraceConsole" style="width: 500px; height: 100px;"></textarea>

</p>

</asp:Content>

运行结果

1、单击“触发异常”按钮

弹出框,信息:ct100_ContentPlaceHolder1_Button1

状态代码:200

出错了!错误信息:输入字符串的格式不正确。(母版页的ScriptManager格式化错误信息)

2、单击“RegisterDataItem测试”按钮

弹出框,信息:ct100_ContentPlaceHolder1_Button2

状态代码:200

注册的数据项为:webabcd

Sample.aspx

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server">

<ContentTemplate>

<%= DateTime.Now.ToString()%>

<br />

<asp:Button ID="Button1" runat="server" Text="Sys.Serialization" OnClick="Button1_Click" />

</ContentTemplate>

</asp:UpdatePanel>

<p>

<textarea id="TraceConsole" style="width: 500px; height: 100px;"></textarea>

</p>

</asp:Content>

运行结果

单击“Sys.Serialization”按钮

{"Name":"webabcd","Age":27}

webabcd 27

{"Name":"webabcd","Age":27}

OK

[源码下载]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐