ScriptManager控件
ScriptManager的简单用法
资料中如实是说:
2, 一个页面只允许有一个ScriptManager,并且放在其他ajax控件的前面.
3,ScriptManager掌管着客户端Ajax页的多有脚本,并在页面中注册Ajax类库,用来实现页面的局部更新和对Web服务的调用.
下面是scriptManager的结构:
下面介绍下ScriptManager的几个属性和一些子元素
a, EnablePartialRendering: (默认局部渲染)比较重要,用来表示此页面是否允许局部刷新(默认为true)
b, AllowCustomErrorsRedirect :当发生错误时候,是否导航到web.config中定义的错误页面,如果设置为false,则使用AsyncPostBackErrorMessage和OnAsyncPostBackError提示错误.
c, AsyncPostBackErrorMessage: 异步调用发生错误时的提示信息.
d, OnAsyncPostBackError: 异步调用发生错误时的事件
e, AsyncPostBackTimeOut: 异步调用的有效时间 默认为 90秒
f, AuthenticationService: 用来表示提供验证服务的路径.
g, ProfileService 表示提供个性化服务的路径
h, Scripts 对脚本的调用,可以恰套多个ScriptReference摸板对多个脚本文件的调用
i, Service 对服务的调用 也可以恰套多个ServiceReference摸板以实现多个服务的引用
下面简单介绍下上面属性的基本使用格式:
调用脚本文件:
脚本语言我们可以直接写在页面的<script></script> 元素内
也可以使用注册方式在页面的head中
<script type="text/javascript" src="http://blog.163.com/art_budder_niu/blog/"> <script>
在ajax技术中也提供了一种注册方式,
<asp:ScriptManager ID="ScriptManager" runat="server">
<Scripts>
<asp:ScriptReference Path="" /> //脚本引用路径
<Scripts>
</asp:ScriptManager>
从<Scripts>来看,它可以多个js文件,如果单能实现这个功能觉得微软有点话蛇添足,它的主要用途是调用ajax中已经存在的Javascrtpt脚本文件.
如:
<asp:ScriptManager runat="server" ID="scriptManager">
<Scripts>
<asp:ScriptReference Assembly="Microsoft.Web.Preview" Name="PreviewScript.js" />
<ssp:ScriptReference Assembly="Microsoft.Web.Preview" Name="PreviewDragDrop.js />
</asp:ScriptManager>
调用Web Service
ScriptManager的主要作用就是在客户端 调用一些服务器的代码,比较常用的就是将web service注册在客户端,从而可以用javascript脚本中实现对web service的调用
下面使用俩个例子说明对web service中方法的调用:
页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="txtName" />
<input type="button" value="带参数的web service方法调用" οnclick="ReferencSercviceMethod2()" />
<input type="button" value="不带参数的web service方法调用" οnclick="ReferenceServiceMethod1()" />
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="WebServiceTest.asmx" />
</Services>
<Scripts>
<asp:ScriptReference Path="Script/JScript.js" />
</Scripts>
</asp:ScriptManager>
</form>
</body>
</html>
js代码:
function ReferenceServiceMethod1(){
WebServiceTest.HelloWorld(GetResult);
}
function GetResult(result){
alert(result);
}
function ReferencSercviceMethod2(){
WebServiceTest.SayHelloWorld(document.getElementById("txtName").value,GetResult);
}
web service代码:
using System;
using System.Collections;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
/// <summary>
///WebServiceTest 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//这句一定要加上
[System.Web.Script.Services.ScriptService]
public class WebServiceTest : System.Web.Services.WebService {
public WebServiceTest () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod]
public string SayHelloWorld(string name)
{
return "Hello World " + name;
}
}
下面简单介绍下用scriptManager的动态注册一个web service
可以删除掉上面页面代码中<Services></Services>段
在page的代码的load事件中加入下面代码:
protected void Page_Load(object sender, EventArgs e)
{
ServiceReference service = new ServiceReference("WebServiceTest.asmx");
ScriptManager1.Services.Add(service);
}
OnAsyncPostBackError的使用
在scriptManager中可以捕获局部更新失败的错误,OnAsyncPostError表示当回发处理发生错误时的事件
AsyncPostBackMessage表示发生错误时的提示信息。
页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"
onasyncpostbackerror="ScriptManager1_AsyncPostBackError">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="触发错误按钮" οnclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
cs文件代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
(int.Parse("") + 1).ToString();
}
catch ( Exception ex)
{
ex.Data["ExtraInfo"] = "类型转换错误!";
throw ex;
}
}
protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
{
if (e.Exception.Data["ExtraInfo"] != null)
{
ScriptManager1.AsyncPostBackErrorMessage = e.Exception.Message + "---注意";
}
else
{
ScriptManager1.AsyncPostBackErrorMessage = "其他原因导致运行失败";
}
}
}
ScriptManager控件相关推荐
- 通过Ajax来简单的实现局部刷新(主要为C#中使用的UpdatePanel控件和ScriptManager控件)...
1. ScriptManager和UpdatePanel控件联合使用可以实现页面局部异步刷新的效果.UpdatePanel用来设置页面中局部异步刷新的区域,它必须依赖于ScriptManager,因为 ...
- scriptmanager控件使用
今天用到scriptmanager,顺便整理一下. ----------------------------网络资料------------------------------------------ ...
- ScriptManager 控件概述
原文 http://msdn.microsoft.com/zh-cn/library/bb398863.aspx ScriptManager 控件管理支持 AJAX 的 ASP.NET 网页的客户端脚 ...
- [ASP.NET]ScriptManager控件使用 转载
目录 概述 局部刷新 错误处理 类型系统扩展 注册定制脚本 注册 Web 服务 在客户端脚本中使用认证和个性化服务 ScriptManagerProxy 类 添加 ScriptManager 控件 客 ...
- ASP.Net 中ASP:ScriptManager控件的使用
概述 ScriptManager 控件管理用于 Microsoft ASP.NET AJAX 页面的客户端脚本.默认情况下,ScriptManager 控件将 Microsoft AJAX 库的脚本与 ...
- ASP.NET AJAX 学习之一 ScriptManager控件
主要内容 1.控件概述 2.一个简单的示例 3.客户端脚本模式 4.错误处理 5.Services属性 6.Scripts属性 一.控件概述 ScriptManager控件包括在ASP.NET ...
- ASP.NET - ScriptManager 控件概述
ScriptManager 控件管理支持 AJAX 的 ASP.NET 网页的客户端脚本.默认情况下,ScriptManager 控件会向页面注册 Microsoft AJAX Library 的脚本 ...
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问W ...
- ScriptManager的简单用法-ASP.Net 中ASP:ScriptManager控件的使用
资料中如实是说: 1, ScriptManager(脚本控制器)是asp.net ajax存在的基础.2, 一个页面只允许有一个ScriptManager,并且放在其他ajax控件的前面.3,Scri ...
最新文章
- PHP7.3中fileinfo怎么安装与开启
- STM32的启动分析
- .Net Core 定时任务TimeJob
- 计算机word考试中的图文混排,2014招警考试公共基础计算机知识:Word的图文混排功能...
- python3类与对象汽车,Python3 类与对象
- 如何去除bootstrap中按钮的黑线边框
- 在Kubernetes上使用Prometheus Operator监视应用程序
- 区块链 FISCO BCOS网络端口讲解
- Linux Shell脚本编程-语句控制
- 线程安全之单例模式之懒汉模式
- 4G关键技术之MIMO
- 读书笔记012:《伤寒论》- 手少阳三焦经
- select函数用法详解
- Go面试题——log.fatal和panic的区别
- 非常道:ChatGPT 与思想革命
- 使用64位任务管理器转储的32位.NET进程dump,WinDbg如何调试
- 烽火移动设备管理:企业安全管理无处遁形
- HTML5+CSS3小实例:抽屉式分享按钮切换效果
- 【转发】JS实现密码加密
- folx pro 激活码使用安装下载教程(mac优秀下载工具)
热门文章
- div +css 纵向导航
- (附源码)基于springboot的物流配货管理系统的设计与实现 毕业设计 250858
- Visual Studio 2019安装AutoCAD_2020_dotnet_wizards
- UA OPTI544 量子光学4 光与介质相互作用 2-level System Approximation
- 并发、并行、同步、异步、进程,线程、串行、并行?一文弄懂八大概念
- 阿里 - 淘宝 - 精排模型发展趋势
- Python 如何把图像转换成video (avi)格式?
- vue实现分组轮播(一排放4个小的、无缝滚动、跑马灯效果)
- 【华为OD机试Python实现】HJ38 求小球落地5次后所经历的路程和第5次反弹的高度(中等)
- SM5401移动电源充放电管理芯片5V/0.8A充电宝芯片兼容HT4928替代TP4333