`
isiqi
  • 浏览: 16466108 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

ASP.NET AJAX入门系列(2):使用ScriptManager控件

阅读更多
ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问Web Service,所有需要支持ASP.NET AJAX的ASP.NET页面上有且只能有一个ScriptManager控件。在ScriptManager控件中我们可以指定需要的脚本库,或者指定通过JS来调用的Web Service,以及调用AuthenticationService和ProfileService,还有页面错误处理等。
主要内容
1.控件概述
2.一个简单的示例
3.客户端脚本模式
4.错误处理
5.Services属性
6.Scripts属性
一.控件概述
ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问Web Service,所有需要支持ASP.NET AJAX的ASP.NET页面上有且只能有一个ScriptManager控件。在ScriptManager控件中我们可以指定需要的脚本库,或者指定通过JS来调用的Web Service,还可以指定页面错误处理等。
使用<asp:ScriptManager/>来定义一个ScriptManager,简单的ScriptManager定义形式:

属性和方法如下:

属性/方法
描述
AllowCustomError
和Web.config中的自定义错误配置区<customErrors>相联系,是否使用它,默认值为true
AsyncPostBackErrorMessage
异步回传发生错误时的自定义提示错误信息,
AsyncPostBackTimeout
异步回传时超时限制,默认值为90,单位为秒
EnablePartialRendering
是否支持页面的局部更新,默认值为True,一般不需要修改
ScriptMode
指定ScriptManager发送到客户端的脚本的模式,有四种模式:Auto,Inherit,Debug,Release,默认值为Auto,后面会仔细说到。
ScriptPath
设置所有的脚本块的根目录,作为全局属性,包括自定义的脚本块或者引用第三方的脚本块。如果在Scripts中的<asp:ScriptReference/>标签中设置了Path属性,它将覆盖该属性。
OnAsyncPostBackError
异步回传发生异常时的服务端处理函数,在这里可以捕获一场信息并作相应的处理。
OnResolveScriptReference
指定ResolveScriptReference事件的服务器端处理函数,在该函数中可以修改某一条脚本的相关信息如路径、版本等。
二.一个简单的示例
这个例子其实是UpdatePanel示例,在页面中加入了日期控件和一个下拉框,根据下拉框选择的不同,日期控件背景变为不同的颜色。示例代码如下:
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>



<scriptrunat="server">

voidDropDownSelection_Change(Objectsender,EventArgse)

{

Calendar1.DayStyle.BackColor
=

System.Drawing.Color.FromName(ColorList.SelectedItem.Value);

}


</script>



<htmlxmlns="http://www.w3.org/1999/xhtml">

<headid="Head1"runat="server">

<title>ScriptManagerExample</title>

</head>

<body>

<formid="form1"runat="server">

<div>

<asp:ScriptManagerID="ScriptManager1"

runat
="server">

</asp:ScriptManager>

<asp:UpdatePanelID="UpdatePanel1"

runat
="server">

<ContentTemplate>

<asp:CalendarID="Calendar1"

ShowTitle
="True"

runat
="server"/>

<div>

Background:

<br/>

<asp:DropDownListID="ColorList"

AutoPostBack
="True"

OnSelectedIndexChanged
="DropDownSelection_Change"

runat
="server">

<asp:ListItemSelected="True"Value="White">

White
</asp:ListItem>

<asp:ListItemValue="Silver">

Silver
</asp:ListItem>

<asp:ListItemValue="DarkGray">

DarkGray
</asp:ListItem>

<asp:ListItemValue="Khaki">

Khaki
</asp:ListItem>

<asp:ListItemValue="DarkKhaki">D

arkKhaki
</asp:ListItem>

</asp:DropDownList>

</div>

</ContentTemplate>

</asp:UpdatePanel>

<br/>

</div>

</form>

</body>

</html>
三.客户端脚本模式
在前面我们提到了ScriptMode属性指定ScriptManager发送到客户端的脚本的模式,它有四种模式:Auto,Inherit,Debug,Release,默认值为Auto。
1.Auto:它会根据Web站点的Web.config配置文件来决定使用哪一种模式,只有当配置文件中retail属性设置为false:.Inherit:应该是通过程序设置ScriptMode的时候,等同于Auto?(不太了解)
<system.web>

<deploymentretail="false"/>

</system.web>
或者页面中的Debug指令设为true的时候会使用Debug版本,其他的情况都会使用Release版本。
<%@PageLanguage="C#"Debug="true"

AutoEventWireup
="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>
2
3.Debug:客户端脚本使用Debug版本,除非retail属性设为true。
4.Release:客户端脚本使用Release版本,除非retail属性设为false。
四.错误处理
在页面回传时如果发生了异常AsyncPostBackError事件将被触发,错误信息的处理依赖于AllowCustomErrors属性、AsyncPostBackErrorMessage属性和Web.config中的<customErrors>配置区。下面看一个简单的错误处理例子,在AsyncPostBackError事件中捕获到异常信息并设置AsyncPostBackErrorMessage属性。
<%@PageLanguage="C#"%>

<scriptrunat="server">

protected
voidErrorProcessClick_Handler(objectsender,EventArgse)

{
//Thishandlerdemonstratesanerrorcondition.Inthisexample

//theservererrorgetsinterceptedontheclientandanalertisshown.

thrownewArgumentException();
}


protected
voidSuccessProcessClick_Handler(objectsender,EventArgse)

{
//Thishandlerdemonstratesnoserversideexception.

UpdatePanelMessage.Text
="Theasynchronouspostbackcompletedsuccessfully.";

}


protected
voidScriptManager1_AsyncPostBackError(objectsender,AsyncPostBackErrorEventArgse)

{
ScriptManager1.AsyncPostBackErrorMessage
="异常信息为:"+e.Exception.Message;

}


</script>


<htmlxmlns="http://www.w3.org/1999/xhtml">

<headid="Head1"runat="server">

<title>PageRequestManagerendRequestEventArgsExample</title>

<styletype="text/css">

body
{}{

font-family
:Tahoma;

}


#AlertDiv
{}{

left
:40%;top:40%;

position
:absolute;width:200px;

padding
:12px;

border
:#0000001pxsolid;

background-color
:white;

text-align
:left;

visibility
:hidden;

z-index
:99;

}


#AlertButtons
{}{

position
:absolute;

right
:5%;

bottom
:5%;

}


</style>

</head>

<bodyid="bodytag">

<formid="form1"runat="server">

<div>

<asp:ScriptManagerID="ScriptManager1"runat="server"
OnAsyncPostBackError
="ScriptManager1_AsyncPostBackError">

</asp:ScriptManager>

<scripttype="text/javascript"language="javascript">

varcolor: #000000; background-col
分享到:
评论

相关推荐

    ASP[1].NET_AJAX入门系列:使用ScriptManager控件

    在这个入门系列中,我们将重点关注如何使用ScriptManager控件,它是ASP.NET AJAX框架的核心组件。 **ScriptManager控件概述** ScriptManager控件是ASP.NET 2.0 AJAX扩展的一部分,它在页面中起着至关重要的作用。它...

    ASP.NET_AJAX入门系列

    ASP.NET_AJAX入门系列:使用ScriptManager控件.doc ASP.NET_AJAX入门系列:使用UpdatePanel控件.doc ASP.NET_AJAX入门系列:使用客户端脚本对UpdateProgress编程.doc ASP.NET_AJAX入门系列:在多个UpdatePanle中使用...

    ASP.NET_AJAX入门系列:使用UpdatePanel控件.doc

    在这个入门系列中,我们将重点关注如何使用UpdatePanel控件,一个无需编写大量客户端脚本来实现异步更新的强大工具。 **一、UpdatePanel控件概述** UpdatePanel是ASP.NET AJAX库中的核心组件之一,用于实现页面的...

    ASP.NET AJAX入门系列:使用UpdatePanel控件

    ### ASP.NET AJAX入门系列:使用UpdatePanel控件 #### 一、UpdatePanel控件概述 在探讨UpdatePanel之前,我们先简要回顾一下ASP.NET AJAX技术。ASP.NET AJAX是Microsoft推出的一套工具集,用于增强ASP.NET应用的...

    ASP.NET AJAX入门系列:使用ScriptManagerProxy控件.docx

    在ASP.NET AJAX中,ScriptManager控件扮演着核心角色,它负责管理页面上的AJAX功能,如脚本注册、服务引用以及对ASP.NET AJAX库的初始化。然而,一个ASPX页面只能有一个ScriptManager实例,这在使用母版页(Master-...

    ASP.NET AJAX深入浅出系列课程(17):关注ASP.NET AJAX的核心:ScriptManager

    在"ASP.NET AJAX深入浅出系列课程(17):关注ASP.NET AJAX的核心:ScriptManager"中,可能详细讲解了如何使用ScriptManager组件,如何配置和优化它的各种属性,以及在实际项目中如何利用ScriptManager提升应用程序的...

    ASP.NET AJAX

    ASP.NET AJAX入门系列(3):使用ScriptManagerProxy控件 导读:在ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有母版页的情况下,如果需要在Master-Page和Content-Page中需要引入不同...

    TerryLee_李会军_ASP.NET AJAX入门系列(1):概述 .rar

    2. **创建基本页面**:创建一个新的ASP.NET Web Forms项目,添加一个ASP.NET AJAX启用的页面,引入ScriptManager控件。 3. **使用UpdatePanel**:在页面上放置UpdatePanel,将需要异步更新的控件放入其中。 4. **...

    asp.net ajax入门与案例详解

    AjaxControlToolkit是ASP.NET AJAX的一个扩展库,包含了一系列预包装的控件和行为,提供了更多增强用户体验的功能,如Accordion、Calendar、Slider等。 七、案例详解 1. 实时聊天:使用UpdatePanel和Timer控件,...

    ASP.NET AJAX入门系列1.doc

    对于初学者,通过这个ASP.NET AJAX入门系列,可以系统地学习如何利用ASP.NET AJAX创建高效、交互性强的Web应用,并避免在学习过程中遇到不必要的困扰。由于技术不断演进,可能出现错误或遗漏,因此持续学习和社区...

    ASP.NET AJAX核心控件示例

    在这个"ASP.NET AJAX核心控件示例"中,我们将探讨四个关键的控件:ScriptManager、UpdatePanel、UpdateProgress和Timer,它们在实现页面无刷新更新和优化用户体验方面起着重要作用。 1. **ScriptManager**: ...

    ASP.NET AJAX入门系列

    总之,ASP.NET AJAX入门系列教程将带你走进AJAX的世界,通过一系列实例和讲解,让你掌握使用ASP.NET AJAX构建动态Web应用程序的技巧,为后续的Web开发打下坚实基础。无论是对于初学者还是有经验的开发者,这都是一个...

    ASP.NET AJAX入门系列2

    在ASP.NET AJAX入门系列2中,我们将深入探讨如何在母版页(Master Page)中使用UpdatePanel控件,实现异步更新内容。 UpdatePanel是ASP.NET AJAX的一个关键组件,它使得在页面上的某些区域可以实现AJAX更新,即局部...

    ASP.NET Ajax程序设计 源码 免费

    2. **ASP.NET AJAX Extensions**:这是服务器端的扩展,为ASP.NET提供了与AJAX相关的服务,如PageMethods、ScriptServices等。 3. **ASP.NET AJAX Control Toolkit**:一套开源的服务器控件和行为,为开发者提供了...

    完全手册:ASP.net.Ajax电子教程

    - **System.Web.Extensions**:这是ASP.NET AJAX的核心组件,提供了服务器端和客户端的类库,包括UpdatePanel、ScriptManager和Timer控件等。 - **UpdatePanel**:此控件允许开发者创建局部刷新的区域,即只更新...

    ASP.NET 2.0入门经典:C#编程篇.pdf

    10. **Ajax 支持**:ASP.NET 2.0通过UpdatePanel和ScriptManager等组件引入了部分页面刷新(Partial Page Rendering),提升了用户体验。 总之,《ASP.NET 2.0入门经典:C#编程篇》这本书应该会详细讲解以上这些...

Global site tag (gtag.js) - Google Analytics