zoukankan      html  css  js  c++  java
  • [转]javascript 异步调用 后台.cs里的方法 PageMethods如何使用 Kenny

    ASP.NET AJAX异步通信层能够将声明在ASP.NET页面中公有的类方法(C#中的static,VB.NET中的Shared)当作Web Service中声明的方法一样对待,为其生成类似的客户端调用代理。

      我们还是通过一个实例程序来了解这个功能。该示例程序的功能与界面与前一节中的完全一致,唯一的不同就是,客户端异步调用的不再是某个Web Service,而是定义在ASP.NET页面中的类方法。

      首先是定义在ASP.NET页面中的类方法,完整的方法声明如下:
      [WebMethod]
      public static string SayHelloFromPage(string name)
      {
      return string.Format("Hello {0}!", name);
      }

      特别需要注意的是,若要让ASP.NET AJAX为其生成客户端调用代理,那么一定要为该方法添加[WebMethod]属性。

      然后是ScriptManager控件,注意粗体部分代码设置了EnablePageMethods属性为true,这也是让客户端能够直接调用服务器端页面方法所必需的。若忘记设定该属性,那么程序将无法完成预期功能。  

      程序界面中的UI元素和前一节示例程序中的完全一致,这里不赘:
      onclick="return btnInvoke_onclick()" />

      而本示例程序中按钮的click事件处理函数以及异步调用的回调函数则需要一定的修改,如下所示:
      function btnInvoke_onclick() {
      var theName = $get("tbName").value;
      PageMethods.SayHelloFromPage(theName, onSayHelloSucceeded);
      }
      function onSayHelloSucceeded(result) {
      $get("result").innerHTML = result;
      }

      注意上述代码中的粗体部分。可以看到,调用页面方法代理时统一的前缀为PageMethods。接下来是页面方法的名称,这里为SayHelloFromPage(),其参数列表和C#中方法的定义一致,额外的一个参数表示本次异步调用的回调函数。即语法为:
      PageMethods.[MethodName](param1, param2,..., callbackFunction);

      想要使用ASP.NET AJAX在客户端JavaScript中异步调用定义在ASP.NET页面中的方法,我们需要:
      将该方法声明为公有(public);
      将该方法声明为类方法(C#中的static,VB.NET中的Shared),而不是实例方法;
      为该方法添加[WebMethod]属性;
      将页面中ScriptManager控件的EnablePageMethods属性设置为true;
      在客户端使用如下JavaScript语法调用该页面方法:
      PageMethods.[MethodName](param1, param2,..., callbackFunction);
      为客户端异步调用指定回调函数,在回调函数中接收返回值并进一步处理。

    转自:http://develop.csai.cn/Ajax/200801171058191063.htm

  • 相关阅读:
    用单循环链表实现约瑟夫问题。
    迅雷2014校园招聘笔试题
    JSP:JAVA Bean在JSP中的运用
    大学生学业指导类书目
    IOS详解TableView——对话聊天布局的实现
    jQuery EasyUI API 中文文档
    在Centos 5.4上安装Mysql5.5.10 (整理以前的工作文档)
    Centos环境下部署游戏服务器-SVN
    原本好好的程序,怎么电脑重启后就打不开了?
    UVA 10911 Forming Quiz Teams(dp + 集合最优配对问题)
  • 原文地址:https://www.cnblogs.com/chenhuzi/p/1686467.html
Copyright © 2011-2022 走看看