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控件相关推荐

  1. 通过Ajax来简单的实现局部刷新(主要为C#中使用的UpdatePanel控件和ScriptManager控件)...

    1. ScriptManager和UpdatePanel控件联合使用可以实现页面局部异步刷新的效果.UpdatePanel用来设置页面中局部异步刷新的区域,它必须依赖于ScriptManager,因为 ...

  2. scriptmanager控件使用

    今天用到scriptmanager,顺便整理一下. ----------------------------网络资料------------------------------------------ ...

  3. ScriptManager 控件概述

    原文 http://msdn.microsoft.com/zh-cn/library/bb398863.aspx ScriptManager 控件管理支持 AJAX 的 ASP.NET 网页的客户端脚 ...

  4. [ASP.NET]ScriptManager控件使用 转载

    目录 概述 局部刷新 错误处理 类型系统扩展 注册定制脚本 注册 Web 服务 在客户端脚本中使用认证和个性化服务 ScriptManagerProxy 类 添加 ScriptManager 控件 客 ...

  5. ASP.Net 中ASP:ScriptManager控件的使用

    概述 ScriptManager 控件管理用于 Microsoft ASP.NET AJAX 页面的客户端脚本.默认情况下,ScriptManager 控件将 Microsoft AJAX 库的脚本与 ...

  6. ASP.NET AJAX 学习之一 ScriptManager控件

      主要内容 1.控件概述 2.一个简单的示例 3.客户端脚本模式 4.错误处理 5.Services属性 6.Scripts属性   一.控件概述 ScriptManager控件包括在ASP.NET ...

  7. ASP.NET - ScriptManager 控件概述

    ScriptManager 控件管理支持 AJAX 的 ASP.NET 网页的客户端脚本.默认情况下,ScriptManager 控件会向页面注册 Microsoft AJAX Library 的脚本 ...

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

    ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问W ...

  9. ScriptManager的简单用法-ASP.Net 中ASP:ScriptManager控件的使用

    资料中如实是说: 1, ScriptManager(脚本控制器)是asp.net ajax存在的基础.2, 一个页面只允许有一个ScriptManager,并且放在其他ajax控件的前面.3,Scri ...

最新文章

  1. PHP7.3中fileinfo怎么安装与开启
  2. STM32的启动分析
  3. .Net Core 定时任务TimeJob
  4. 计算机word考试中的图文混排,2014招警考试公共基础计算机知识:Word的图文混排功能...
  5. python3类与对象汽车,Python3 类与对象
  6. 如何去除bootstrap中按钮的黑线边框
  7. 在Kubernetes上使用Prometheus Operator监视应用程序
  8. 区块链 FISCO BCOS网络端口讲解
  9. Linux Shell脚本编程-语句控制
  10. 线程安全之单例模式之懒汉模式
  11. 4G关键技术之MIMO
  12. 读书笔记012:《伤寒论》- 手少阳三焦经
  13. select函数用法详解
  14. Go面试题——log.fatal和panic的区别
  15. 非常道:ChatGPT 与思想革命
  16. 使用64位任务管理器转储的32位.NET进程dump,WinDbg如何调试
  17. 烽火移动设备管理:企业安全管理无处遁形
  18. HTML5+CSS3小实例:抽屉式分享按钮切换效果
  19. 【转发】JS实现密码加密
  20. folx pro 激活码使用安装下载教程(mac优秀下载工具)

热门文章

  1. div +css 纵向导航
  2. (附源码)基于springboot的物流配货管理系统的设计与实现 毕业设计 250858
  3. Visual Studio 2019安装AutoCAD_2020_dotnet_wizards
  4. UA OPTI544 量子光学4 光与介质相互作用 2-level System Approximation
  5. 并发、并行、同步、异步、进程,线程、串行、并行?一文弄懂八大概念
  6. 阿里 - 淘宝 - 精排模型发展趋势
  7. Python 如何把图像转换成video (avi)格式?
  8. vue实现分组轮播(一排放4个小的、无缝滚动、跑马灯效果)
  9. 【华为OD机试Python实现】HJ38 求小球落地5次后所经历的路程和第5次反弹的高度(中等)
  10. SM5401移动电源充放电管理芯片5V/0.8A充电宝芯片兼容HT4928替代TP4333