Ajax[翻译]asp.net ajax xml-script教程(三)

现今让大家来看望xml-script中的代码,为了利用xml-script那几个特性,你须要在你的web站点中引用Microsoft.Web.Preview.dll,然后在ScriptManager内加载PreviewScript.js文件

让大家来看一看其中的xml-script代码块。label元素关联到span标签,Sys.Preview.UI.Label控件的实例在runtime的时候被成立。前边是一个timer元素,使用它的时候会创建一个Sys.Preview.提姆er类的实例,timer暴露了一个interval属性用来安装时间的距离,每过一个间隔时间提姆er对象的tick事件将被触发。

总结
在本文(教程的第三部分)中大家介绍了InvokeMethod
action,那几个action可以调用一个在客户端对象中的类型描述符中揭示的法子。在那一个事例中,大家应用了InvokeMethod
action和SetProperty
action去每隔一段时间调用四回web方法,并在label中呈现再次来到的字符串,所有这一个都休想写一行javascript。

InvokeMethod Action
InvokeMethod
action可以调用一个主意,该方式必须是客户端对象已有些一个项目描述符。在接下去的演示中,咱们将介绍一个action,它就是Futures
CTP下的Sys.Preview.Net.瑟维斯MethodRequest。这几个类华而不实出了一个异步调用web
service的办法,并且有一个同意在xml-script中动用的品类描述符。也就是说大家可以不用写一行javascript就能调用一个web
service上的不二法门并且获得再次回到结果。

在本教程的下一部分中,大家将了解如何创立自定义的action。

原文公布日期:2007.01.01
作者:Alessandro
Gallo

翻译:webabcd

有关InvokeMethod Action的愈多内容
tick事件可以用来拍卖一个InvokeMethod
action,调用它的主意是invoke(在method属性中指定),调用对象的id是timeServiceMethod,用target属性提议。在invokeMethodAction元素内有一个parameters元素,该因素用于指定传递给艺术的参数。倘若要指定一个参数,大家要在parameters元素中追加参数名称和参数值。在地方的例证中,我们指定了一个被称作userContext的参数并安装其值为空。

绑定
在setPropertyAction元素内声美赞臣(Meadjohnson)个绑定元素是一件令人感兴趣的事。因为经过web方法再次回到的字符串是储存在ServiceMethodRequest类的result属性里的,所以大家不能在setPropertyAction的value属性中指定它,而是必要注脚式的造访result属性。

示例
我们将调用web
service上的一个回去当前光阴的法门,然后把那一个日子突显到一个Label上。

Ajax 1Ajax 2<%Ajax 3@ Page Language=”C#” %>
Ajax 4
Ajax 5<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” 
Ajax 6http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
Ajax 7
Ajax 8<html xmlns=”http://www.w3.org/1999/xhtml” >
Ajax 9<head runat=”server”>
Ajax 10    <title>Declarative WebService Call</title>
Ajax 11</head>
Ajax 12<body>
Ajax 13    <form id=”form1″ runat=”server”>
Ajax 14    <asp:ScriptManager ID=”ScriptManager1″ runat=”server”>
Ajax 15     <Services>
Ajax 16        <asp:ServiceReference Path=”DateTimeService.asmx” />
Ajax 17     </Services>
Ajax 18Ajax 19     <scripts>Ajax 20
Ajax 21            <asp:ScriptReference Assembly=”Microsoft.Web.Preview” Name=”PreviewScript.js” />
Ajax 22     </scripts>
Ajax 23    </asp:ScriptManager>
Ajax 24    
Ajax 25    <h2>
Ajax 26        <span>Time on Web Server: </span>
Ajax 27        <asp:Label ID=”lblTime” runat=”server”></asp:Label>
Ajax 28    </h2>
Ajax 29
Ajax 30Ajax 31    <script type=”text/xml-script”>Ajax 32
Ajax 33     <page xmlns=”http://schemas.microsoft.com/xml-script/2005"&gt;
Ajax 34        <components>
Ajax 35         <label id=”lblTime” />
Ajax 36         
Ajax 37         <timer id=”theTimer” interval=”2000″ enabled=”true”>
Ajax 38             <tick>
Ajax 39                 <invokeMethodAction target=”timeServiceMethod” method=”invoke”>
Ajax 40                     <parameters userContext=”” />
Ajax 41                 </invokeMethodAction>
Ajax 42             </tick>
Ajax 43         </timer>
Ajax 44         
Ajax 45         <serviceMethodRequest id=”timeServiceMethod” 
Ajax 46                                 url=”DateTimeService.asmx” 
Ajax 47                                 methodName=”GetTimeAsString”>
Ajax 48            <completed>
Ajax 49                <setPropertyAction target=”lblTime”
Ajax 50                                 property=”text”
Ajax 51                                 >
Ajax 52                    <bindings>
Ajax 53                        <binding dataContext=”timeServiceMethod”
Ajax 54                                 dataPath=”result”
Ajax 55                                 property=”value”
Ajax 56                                 />        
Ajax 57                    </bindings>
Ajax 58                </setPropertyAction>
Ajax 59            </completed>
Ajax 60         </serviceMethodRequest>
Ajax 61        </components>
Ajax 62     </page>
Ajax 63    </script>
Ajax 64    </form>
Ajax 65</body>
Ajax 66</html>

一经你还不知底绑定是如何工作的,不要心急,因为我们将在那一个种类教程的下一部分中解释它们。

Ajax 67Ajax 68<%Ajax 69@ WebService Language=”C#” Class=”DateTimeService” %>  
Ajax 70using System; 
Ajax 71using System.Web; 
Ajax 72using System.Web.Services; 
Ajax 73using System.Web.Services.Protocols; 
Ajax 74using System.Web.Script.Services;  
Ajax 75
Ajax 76[WebService(Namespace = “http://tempuri.org/")\
Ajax 77[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
Ajax 78[ScriptService] 
Ajax 79public class DateTimeService : System.Web.Services.WebService 
Ajax 80{      
Ajax 81  [WebMethod]     
Ajax 82  [ScriptMethod]     
Ajax 83  public string GetTimeAsString() 
Ajax 84  {         
Ajax 85    return DateTime.Now.ToShortTimeString();     
Ajax 86  } 
Ajax 87

初稿地址:http://dotnetslackers.com/articles/atlas/xml_script_tutorial_part3.aspx

在serviceMethodRequest元素内大家会意识一个completed节点。当ServiceMethodRequest类成功的异步调用了web方法后将触发completed事件,大家利用SetProperty
action来拍卖那么些事件,以设置label的text为web方法再次来到的格式化了目后天子的字符串。ServiceMethodRequest类还揭露了其他一些轩然大波,如timeout和error,当异步请求的拍卖时期暴发了晚点或不当的时候将会接触它们。

id为timeServiceMethod的serviceMethodRequest元素被解析成一个Sys.Preview.Net.ServiceMethodRequest类的实例。url和methodName属性分别指定web
service的路线及调用方法的称谓。

要这么做,就须求拔取绑定,建立平等对象或分裂对象的三个属性之间的关系,可以使得当一个品质暴发改变的时候,另一个性质也自行的转移。若是您注意看了示范中的绑定声明,你会看到dataContext属性指向time瑟维斯Method,dataPath属性指向result。最终property属性设置成value。setPropertyAction元素的value属性(或者说是SetPropertyAction类的value属性)将连接和瑟维斯MethodRequest类的result属性有同样的值。作为结果,label的text将通过result属性被设置成重临的字符串。

介绍
在xml-script教程的首先局地(译者注:中文在此处)和第二有些(译者注:中文在此地)中大家介绍了声称程序模型和什么通过客户端的Microsoft
Ajax对象处监护人件。处监护人件可以调用一段javascript函数,也得以选拔action。在本文(第三片段)中我们将谈谈InvokeMethod
action,它同意大家以宣称的方法调用一个措施。

asp.net ajax xml-script教程(三)

率先大家要先创设一个web
service。在你的安装了Ajax-CTP的站点中新建一个名为Date提姆eService.asmx的web
service,其代码如下:

在意:Date提姆eService类被ScriptService属性所描述,它打招呼asp.net
ajax去生成一个web
service的客户端代理类。那个代理类允许我们应用客户端的javascript来调用以ScriptMethod描述的章程(就是像Get提姆eAsString的那种方式)

相关文章