Asp.Net Ajax编程时,首先就得托一个ScriptManager,尽管不对它做任何操作。添加后就能正确运行,不添加就提示有错。具体为什么呢?本文就ScriptManager控件做详细介绍。

为什么要用ScriptManager

ScriptManager控件会向页面注册Microsoft Ajax library的脚本。使客户端脚本能够使用类型系统扩展并支持部分页呈现和Web服务调用这样的功能。  
 这也就是尽管控件不做任何操作,还需把它引过来。

   <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

ScriptManager使用技巧

1,指定错误处理

1),出错跳转到指定页面

<form id="form1" runat="server"><asp:ScriptManager ID="ScriptManager2" runat="server" AllowCustomErrorsRedirect="true" ></asp:ScriptManager><asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate><asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></ContentTemplate></asp:UpdatePanel>
</form>
protected void Button1_Click(object sender, EventArgs e){throw new Exception();}

web.config

 <system.web><compilation debug="false" targetFramework="4.0"/><customErrors mode="On" defaultRedirect="Error.aspx"></customErrors></system.web>

说明:  在异步处理中发生错误,想要跳转到指定的页面时,只需修改AllowCustomErrorsRedirect属性值,且跳转页面是在.config文件中定义的。

2),捕获错误

<asp:ScriptManager ID="ScriptManager1" runat="server" AllowCustomErrorsRedirect="false" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate><asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></ContentTemplate>
</asp:UpdatePanel>
<script type="text/javascript" language="javascript">Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, e){e.set_errorHandled(true);$get("error").innerHTML =  e.get_error().message;});
</script>
protected void Button1_Click(object sender, EventArgs e)
{throw new Exception("Error!");
}
protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
{ScriptManager.GetCurrent(this).AsyncPostBackErrorMessage = e.Exception.Message;
}

说明:
 AsyncPostBackErrorMessage属相设置发送到浏览器的消息提示。如上实例,在浏览器页面就能显示错误的信息。

2,弹出框

如果使用了ScriptManager和UpdatePanel控件,则以往的弹出框Reseponse.Write()就不管用了。那么如果想要弹出提示框该怎么办?,既然微软能把Ajax技术封装成了控件,那么相关的信息肯定都在控件中能够找到。ScriptManager就能解决弹出框的问题。

protected void Button1_Click(object sender, EventArgs e)
{ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdatePanel1", "alert(1)", true);ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1, this.GetType(), "UpdatePanel1", "alert(2)", true);
}

说明:
1,上面两个代码都能弹出提示框。RegisterStartupScript属相为控件UpdatePanel注册一个启动脚本块,并将该脚本添加到页面中;RegisterClientScriptBlock属性在<form>开始标记之后呈现一个Script该脚本被指定为字符串参数。
2,区别:由于RegisterClientScriptBlock属性是在<form>标记开始之后使用的,由程序执行顺序可知RegisterClientScriptBlock设置的弹出框内容肯定显示在RegisterStartupScript设置的弹出框之前。

总结

ScriptManager是Asp.Net的服务器控件。管理客户端组件、局部页刷新等功能,在使用其他Ajax Extension控件前首先要添加ScriptManger控件

Asp.Net Ajax (2)---ScriptManager相关推荐

  1. asp.net ajax scriptmanager,ASP.NET: ScriptManager Enables AJAX In Your Web Apps | Microsoft Docs

    10/02/2019 閱讀時間 28 分鐘 本文內容 ASP.NET ScriptManager Enables AJAX In Your Web Apps Ben Rush This article ...

  2. ASP.NET AJAX(服务器回调)

    如果只用纯粹的 js ,你必须弥补 ASP.NET 服务器端抽象和有限的 HTML DOM 之间的鸿沟,这不简单,没有 VS 的智能提示和调试工具,编写无错的代码和诊断错误都非常困难.由于各种突发事件 ...

  3. ASP.NET AJAX 首部曲 - 迈向解密之路

    作者:章立民研究室 目的:简述ASP.NET AJAX以及其在实作上的便利性 版本:ASP.NET AJAX 1.0 Beta 2 出处:本文节录自章立民研究室正在撰写的「ASP.NET AJAX大解 ...

  4. 新瓶旧酒ASP.NET AJAX(1) - 简单地过一下每个控件(ScriptManager、ScriptManagerProxy

    [索引页] [×××] 新瓶旧酒ASP.NET AJAX(1) - 简单地过一下每个控件(ScriptManager.ScriptManagerProxy.UpdatePanel. UpdatePro ...

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

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

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

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

  7. MSDN Webcast“深入浅出ASP.NET AJAX系列”

    课程: ASP.NET AJAX深入浅出系列课程(1):ASP.NET AJAX 概述(3月13日):对于ASP.NET AJAX的大致功能进行概述和演示,通过简单的演示让听众了解到ASP.NET A ...

  8. 探讨ASP.NET AJAX客户端开发技术

    一. 简介     在ASP.NET AJAX组件开发中,存在许多环节有待我们深入挖掘.如何让ASP.NET AJAX服务端控件更有效地利用客户端脚本来为控件添加强大的客户端功能?如何更为方便地访问控 ...

  9. Custom Client Side Drag and Drop Behavior in ASP.NET AJAX

    这是我的一篇在http://aspalliance.com/上的英文文章,限于版权协议中的排他性条款,这里只能给出一部分摘要引用.有兴趣的朋友可以到这里看到完整的全文:<Custom Clien ...

最新文章

  1. 面试官一个线程池问题把我问懵逼了。
  2. 用 easy-json-schema 代替 json-schema 吧
  3. $.ajax()参数详解及标准写法
  4. CCNA-Cisco-Packet-Tracerchs(思科官网)安装教程以及使用
  5. 为什么要用枚举实现单例模式(避免反射、序列化问题)
  6. mysqldump文件中有SET @@SESSION.SQL_LOG_BIN= 0;解决方法
  7. 按值传递和按引用传递的区别_c++按值、地址、引用传递参数
  8. Centos下SVN环境部署记录
  9. BizTalk 2002:Registering Custom Components
  10. js的深拷贝的理解和实现
  11. MarkDown 行首缩进
  12. 货币php是什么,php是什么【货币问答】- php是什么所有答案 - 联合货币
  13. CTF —— 网络安全大赛
  14. 历史要横着读,故事要竖着看!嘻哈~
  15. 配置Linux服务器防火墙端口规则
  16. Python 贪心法:真分数表示为埃及分数之和
  17. 股票账户各权限开通条件总结【干活总结】
  18. Word毕业论文排版经验
  19. R语言剔除包含NA值的行
  20. vue—维持登录状态

热门文章

  1. 区块链技术能否给跨境贸易带来新的机遇?
  2. 2023-02-11:给你两个整数 m 和 n 。构造一个 m x n 的网格,其中每个单元格最开始是白色, 请你用 红、绿、蓝 三种颜色为每个单元格涂色。所有单元格都需要被涂色, 涂色方案需要满足:
  3. .NET 6应用程序适配国产银河麒麟V10系统随记
  4. 2.18 小红书的表情文案一键生成,原来这么简单【玩赚小红书】
  5. badou大数据 五期
  6. 2022最新MN梦奈宝塔主机系统V1.5版本+UI不错
  7. C++输入一行数字存放到数组
  8. 横板闯关游戏中的角色移动
  9. 面试官筛选简历,注重以下几点
  10. MEMZ彩虹猫病毒讲解