ScriptManager的简单用法「建议收藏」

ScriptManager的简单用法「建议收藏」ScriptManager的简单用法资料中如实是说:1,ScriptManager(脚本控制器)是asp.netajax存在的基础.2,一个页面只允许有一个ScriptManager,并且放

大家好,又见面了,我是你们的朋友全栈君。

ScriptManager的简单用法

 

资料中如实是说:        1, ScriptManager(脚本控制器)是asp.net ajax存在的基础.       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=””> <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方法调用” onclick=”ReferencSercviceMethod2()” />     <input type=”button” value=”不带参数的web service方法调用” onclick=”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=”触发错误按钮” onclick=”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 = “其他原因导致运行失败”;         }     } }

 
 
 
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154424.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月4日 下午12:46
下一篇 2022年7月4日 下午1:00


相关推荐

  • css选择器nth-child()和nth-of-type()的应用

    css选择器nth-child()和nth-of-type()的应用

    2021年9月8日
    64
  • 【通俗易懂】关系模式范式分解教程 3NF与BCNF口诀!小白也能看懂「建议收藏」

    本来是为了复习数据库期末考试,结果找了一圈都没有发现比较好的解释,通过查阅资料和总结,为大家提供通俗易懂的解法,一听就会!并且配有速记口诀!介是你没有玩过的船新版本包含最小依赖集求法候选码求法在模式分解之前,首先对于1NF,2NF,3NF,BCNF做一个简明扼要的介绍。1NF是指数据库表的每一列都是不可分割的基本数据项,即实体中的某个属性不能有多个值或者不能有重复的属性。2NF要求属性…

    2022年4月8日
    88
  • lede旁路由作用,【旁路由】LEDE/OpenWrt作为旁路由辅助网关(目前最优解)OpenWrt网关旁路由设置…

    lede旁路由作用,【旁路由】LEDE/OpenWrt作为旁路由辅助网关(目前最优解)OpenWrt网关旁路由设置…主路由一般安装爱快或者ROS,主要负责PPPOE拨号、实现多拨、流控、宽带叠加等功能,辅路由一般安装OpenWrt用于实现去广告、网易云音乐听歌等功能。旁路由一般选择单网口的设备安装OpenWrt,也可以使用群晖主机虚拟一个OpenWrt软路由。主路由:192.168.10.1旁路由:192.168.10.200第一步:设置OpenWrt旁路由1、登录OpenWrt后台,关闭DHCP,DHCP由主…

    2022年6月8日
    59
  • 设计模式之职责链模式

    相信大家都玩过类似于“斗地主”的纸牌游戏,某人出牌给他的下家,下家看看手中的牌,如果要不起,则将出牌请求转发给他的下家,其下家再进行判断。一个循环下来,如果其他人都要不起该牌,则最初的出牌者可以打出新

    2021年12月28日
    66
  • pycharm如何设置背景图片_微信主题背景图片

    pycharm如何设置背景图片_微信主题背景图片好看的编译器能使我们愉快的完成编码工作,那么我们能不能给我们的编译器设置一个背景图片的呢???详细步骤1.打开我们的PyCharm,File–>Settings。2.Apperence–>BackgroundImage…。3.选择背景图片的路径,点击下方灰色的方块调整背景图片透明度,点击Ok,点击Ok。4.设置成功。…

    2022年8月26日
    6
  • mysql和mongodb配合_MongoDB和Mysql怎样结合

    mysql和mongodb配合_MongoDB和Mysql怎样结合二者结构有何不同 SQL 中的许多概念都与 MongoDB 的文档结构相关 让我们来看一个简单的 MongoDB 环境结构 以更好地了解 MongoDB 的布局 下面的图表涉及 MySQL 与 MongoDB 的不同点 除此之外 另一个有趣的地方是 mongod 进程 这是一个处理数据请求的守护进程 与 MySQL 的 mysqld 进程大致相同 是监听 MongoDB 请求并管理数据库访问的进程 和 MySQL 一样 mongod 进程有

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号