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

MATLAB数学建模六步法:从问题分析到模型求解的完整实践指南 数学建模是将现实世界问题转化为可计算数学模型的核心方法,广泛应用于预测、优化和系统分析等领域。其基本原理是通过定义变量、建立方程或算法来抽象描述问题,从而实现对复杂系统的量化分析与决策支持。在工程实践与科学研究中,数学建模的价值在于提供了一种结构化的、可验证的问题解决框架。典型的应用场景包括供应链优化、金融风险预测、信号处理及控制系统设计等。本文以MATLAB为工具平台,系统拆解了包含问题分析、模型建立、数据预处理、求解计算、结果检验与报告撰写的完整建模流程,并深入探讨了优化求解、数据清洗等关键环节的实操技 阅读详情
原文地址: http://dotnetslackers.com/articles/atlas/xml_script_tutorial_part3.aspx


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


原文发布日期:2007.01.01
作者: Alessandro Gallo
翻译: webabcd


介绍
在xml-script教程的 第一部分(译者注: 中文在这里)和 第二部分(译者注: 中文在这里)中我们介绍了声明程序模型和如何通过客户端的Microsoft Ajax对象处理事件。处理事件可以调用一段javascript函数,也可以使用action。在本文(第三部分)中我们将谈谈InvokeMethod action,它允许我们以声明的方式调用一个方法。


InvokeMethod Action
InvokeMethod action可以调用一个方法,该方法必须是客户端对象已有的一个类型描述符。在接下来的示例中,我们将介绍一个action,它就是Futures CTP下的Sys.Preview.Net.ServiceMethodRequest。这个类抽象出了一个异步调用web service的方法,并且有一个允许在xml-script中使用的类型描述符。也就是说我们可以不用写一行javascript就能调用一个web service上的方法并且得到返回结果。


示例
我们将调用web service上的一个返回当前时间的方法,然后把这个时间显示到一个Label上。

首先我们要先创建一个web service。在你的安装了Ajax-CTP的站点中新建一个名为DateTimeService.asmx的web service,其代码如下:
<% @ WebService Language="C#" Class="DateTimeService"  %>   
using System; 
using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 
using System.Web.Script.Services;  

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ScriptService] 
public class DateTimeService : System.Web.Services.WebService 
{      
  [WebMethod]     
  [ScriptMethod]     
  public string GetTimeAsString() 
  {         
    return DateTime.Now.ToShortTimeString();     
  } 
} 

注意:DateTimeService类被ScriptService属性所描述,它通知asp.net ajax去生成一个web service的客户端代理类。这个代理类允许我们使用客户端的javascript来调用以ScriptMethod描述的方法(就是像GetTimeAsString的这种方法)

现在让我们来看看xml-script中的代码,为了使用xml-script这个特性,你需要在你的web站点中引用Microsoft.Web.Preview.dll,然后在ScriptManager内加载PreviewScript.js文件
<% @ Page Language="C#"  %>

<! 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 > Declarative WebService Call </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< asp:ScriptManager  ID ="ScriptManager1"  runat ="server" >
     
< Services >
        
< asp:ServiceReference  Path ="DateTimeService.asmx"   />
     
</ Services >
     
< scripts >
            
<asp:ScriptReference Assembly="Microsoft.Web.Preview" Name="PreviewScript.js" />
     
</ scripts >
    
</ asp:ScriptManager >
    
    
< h2 >
        
< span > Time on Web Server:  </ span >
        
< asp:Label  ID ="lblTime"  runat ="server" ></ asp:Label >
    
</ h2 >

    
< script  type ="text/xml-script" >
     
<page xmlns="http://schemas.microsoft.com/xml-script/2005">
        
<components>
         
<label id="lblTime" />
         
         
<timer id="theTimer" interval="2000" enabled="true">
             
<tick>
                 
<invokeMethodAction target="timeServiceMethod" method="invoke">
                     
<parameters userContext="" />
                 
</invokeMethodAction>
             
</tick>
         
</timer>
         
         
<serviceMethodRequest id="timeServiceMethod" 
                                 url
="DateTimeService.asmx" 
                                 methodName
="GetTimeAsString">
            
<completed>
                
<setPropertyAction target="lblTime"
                                 property
="text"
                                 
>
                    
<bindings>
                        
<binding dataContext="timeServiceMethod"
                                 dataPath
="result"
                                 property
="value"
                                 
/>        
                    
</bindings>
                
</setPropertyAction>
            
</completed>
         
</serviceMethodRequest>
        
</components>
     
</page>
    
</ script >
    
</ form >
</ body >
</ html >

让我们来看一看其中的xml-script代码块。label元素关联到span标签,Sys.Preview.UI.Label控件的实例在runtime的时候被创建。后面是一个timer元素,使用它的时候会创建一个Sys.Preview.Timer类的实例,timer暴露了一个interval属性用来设置时间的间隔,每过一个间隔时间Timer对象的tick事件将被触发。


关于InvokeMethod Action的更多内容
tick事件可以用来处理一个InvokeMethod action,调用它的方法是invoke(在method属性中指定),调用对象的id是timeServiceMethod,用target属性指出。在invokeMethodAction元素内有一个parameters元素,该元素用于指定传递给方法的参数。如果要指定一个参数,我们要在parameters元素中增加参数名称和参数值。在上面的例子中,我们指定了一个被称作userContext的参数并设置其值为空。

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

在serviceMethodRequest元素内我们会发现一个completed节点。当ServiceMethodRequest类成功的异步调用了web方法后将触发completed事件,我们使用SetProperty action来处理这个事件,以设置label的text为web方法返回的格式化了当前日期的字符串。ServiceMethodRequest类还暴露了其它一些事件,如timeout和error,当异步请求的处理期间发生了过期或错误的时候将会触发它们。


绑定
在setPropertyAction元素内声明一个绑定元素是一件让人感兴趣的事。因为通过web方法返回的字符串是存储在ServiceMethodRequest类的result属性里的,所以我们不能在setPropertyAction的value属性中指定它,而是需要声明式的访问result属性。

要这么做,就需要使用绑定,建立相同对象或不同对象的两个属性之间的关系,可以使得当一个属性发生改变的时候,另一个属性也自动的改变。如果你注意看了示例中的绑定声明,你会看到dataContext属性指向timeServiceMethod,dataPath属性指向result。最后property属性设置成value。setPropertyAction元素的value属性(或者说是SetPropertyAction类的value属性)将总是和ServiceMethodRequest类的result属性有相同的值。作为结果,label的text将通过result属性被设置成返回的字符串。

如果你还不明白绑定是如何工作的,不要着急,因为我们将在这个系列教程的下一部分中解释它们。


总结
在本文(教程的第三部分)中我们介绍了InvokeMethod action,这个action可以调用一个在客户端对象中的类型描述符中暴露的方法。在这个例子中,我们使用了InvokeMethod action和SetProperty action去每隔一段时间调用一次web方法,并在label中显示返回的字符串,所有这些都不用写一行javascript。

在本教程的下一部分中,我们将懂得如何创建自定义的action。
Docker Compose 部署 WordPress:环境一致性与工程化实践 WordPress 是全球最流行的开源内容管理系统,其本地开发与跨环境部署长期面临 PHP 版本差异、MySQL 认证兼容性、Nginx 重写规则失配等典型问题。Docker Compose 通过声明式服务编排,将运行时依赖(如 mysql:8.0、php:8.2-apache、nginx:alpine)和网络拓扑固化为可复现的配置文件,从根本上解决环境不一致与协作低效难题。它不仅支撑快速搭建开发环境,更可通过 healthcheck、volumes 权限控制、entrypoint 健康等待等机制,实现从单 阅读详情

相关推荐

从零到一:在RK3588 Android12上实战RTL8723DU WiFi蓝牙双模驱动移植

本文详细介绍了在RK3588 Android12系统上实战RTL8723DU WiFi蓝牙双模驱动移植的全过程。从驱动源码获取与修改、系统级集成与编译,到调试与性能优化,提供了完整的解决方案。特别针对USB接口适配、电源管理和蓝牙共存等关键问题给出了具体代码示例,帮助开发者快速完成驱动适配并提升设备稳定性。

weixin_28703489的博客 324

YOLOv5轻量化实战:深度可分离卷积重构C3模块的设计与部署

本文详细介绍了如何通过深度可分离卷积重构YOLOv5的C3模块实现模型轻量化。文章剖析了深度可分离卷积的原理优势,提供了完整的C3模块改造代码,并展示了在移动端部署时的优化技巧和性能实测数据。该方案能减少65%计算量,提升2-3倍推理速度,是边缘计算设备部署目标检测模型的理想选择。

weixin_33730836的博客 221

Aruba CX交换机 初始化配置

Aruba CX 交换机 6000系列 8000系列交换机配置

Harry_Guo 1834

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

原文地址:http://dotnetslackers.com/articles/atlas/xml_script_tutorial_part4.aspxasp.net ajax xml-script教程(四)原文发布日期:2007.01.10作者:Alessandro Gallo翻译:webabcd介绍我们已经看过了第二部分(译者注:中文在这里)和第三部分(译者注:中文在这里)的教程,如果

webabcd的专栏 508

成本150元的高性能RDP协议瘦客户机

云终端市场是一个跨度很大的市场。既有数千元的品牌的瘦客户机,也有几百元的瘦客户机,还有200-300元的支持RDP协议的多用户云终端。但是200-300元的多用户终端,在显示性能上不尽人意,一般用于地产中介门店,工厂产线的电子看板等场合。有没有性能更好,价格更低的方案呢? 答案是有。 这个方案就是 二手的x86 瘦客户机 + DoraOS瘦客户机系统免费版(仅支持RDP)。 首先我们看硬件,在某宝搜索 升腾C92 ,找到最低配置的( CPU:J1800,内存:2G,硬盘:8G)。价格都在150以内。

云飞扬的桌面云 7410

基于深度视觉实现机械臂对目标的识别与定位

Marker ID 和 Marker size 自选,在 launch 文件中做相应的修改(本教程演示使用 Marker ID:582,Marker size:30mm)根据相机和机械臂的安装方式不同,手眼标定分为眼在手上和眼在手外两种方式,双臂机器人的相机和机械臂基座的相对位置固定,所以应该采用眼在手外的手眼标定方式。后续的视觉引导机械臂抓取测试实验基于本实验实现,通过视觉引导右臂完成抓取目标物,所以默认已使用机械臂右臂和相机完成了手眼标定。文件,根据打印的marker 标签,需要配置。

realman_Rop的博客 3764

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

原文地址:http://dotnetslackers.com/articles/atlas/xml_script_tutorial_part2.aspx asp.net ajax xml-script教程(二)原文发布日期:2006.12.11作者:Alessandro Gallo翻译:webabcd概述在xml-script教程的第一部分(译者注:中文在这里)里我们介绍了类型描述符并且知

webabcd的专栏 429

第二次 PX4仿真环境搭建过程全记录

参考链接 https://blog.csdn.net/yanwumuxi/article/details/80097294 https://www.ncnynl.com/archives/201709/2013.html 一、安装依赖项 我们使用Debian / Ubuntu LTS 作为Linux的标准支持版本,但是也支持Cent OS 和 Arch Linux的发行版本。 权限设置 警告:永远...

移步换景的博客 2261

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

原文地址:http://dotnetslackers.com/articles/atlas/xml_script_tutorial_part1.aspxasp.net ajax xml-script教程(一)原文发布日期:2006.12.01作者:Alessandro Gallo翻译:webabcd概述asp.net ajaxt提供了一种通过使用声明程序模型来实例化客户端类型的方法。下面的

webabcd的专栏 403

CCAR-23《正常类飞机适航规定》和CCAR-25《运输类飞机适航规定》差异分析

通过详细比较CCAR-23和CCAR-25在适用范围、设计标准、性能要求、运行限制、安全冗余和环境适应性方面的差异,我们可以看出,CCAR-23适用于轻型飞机,开发和运营成本较低,设计要求相对简单。而CCAR-25适用于大规模运输飞机,设计、开发、测试和运营管理都需要更高的复杂性和投入。

qq_41854911的博客 3703

如何使用VNC对openEuler系统进行远程图形化操作

本文详细介绍了在openEuler系统中配置VNC远程图形化操作的方法。主要内容包括:1)服务端配置:安装GNOME图形界面和TigerVNC服务,创建VNC用户并设置密码,配置VNC服务启动脚本;2)客户端连接:使用VNC Viewer等工具连接服务器;3)常见问题解决方法。通过5901端口建立连接后,用户可远程操作openEuler图形界面,适用于需要图形化管理的场景。

2501_93651177的博客 313

asp net的Ajax学习进阶

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asp.net的Aja

gdfjhc的博客 260

【2026OD新机考】【不定滑窗】20260415-API请求日志去重分析【Py/Java/C++/C/JS/Go六种语言OD真题】【欧弟算法】全网注释最详细分类最全的华子OD真题题解

中找到所有的连续的相同元素,同时统计对应的连续相同元素对应的值的平均值。:当右指针为第一个元素(没有前一个元素),或者右指针对应的元素。某微服务系统的日志监控平台需分析API调用记录,日志含大量。相等,说明当前元素仍然属于同一个相同元素窗口,将当前元素值。中的所有元素均相等,并且计算窗口和情况即可。请实现一个函数,对给定的日志数据去重合并处理。位置,表示开启一个新的窗口,此时需要重置窗口和。,为了优化重复的请求记录,存储和后续分析需对。:对应的响应时间数组(毫秒)。重新置为当前右指针的元素值。

weixin_48157259的博客 111

[翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(2) - 通过Email发送监测信息

原文地址:http://aspnet.4guysfromrolla.com/articles/032107-1.aspx[原文源码下载][译者改后源码下载][翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(2) - 通过Email发送监测信息原文发布日期:2007.03.21作者:Scott Mitchell翻译:webabcd介绍ASP.NET 2.0

webabcd的专栏 1423

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

[翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(1) - 基本应用

原文地址:http://aspnet.4guysfromrolla.com/articles/031407-1.aspx[原文源码下载][译者改后源码下载][翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(1) - 基本应用原文发布日期:2007.03.14作者:Scott Mitchell翻译:webabcd介绍在程序部署之前,要经历许多软件工程中定义

webabcd的专栏 1157

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[翻译]开发自己的web站点管理工具(Website Administration Tool)(2)

原文地址:http://aspnet.4guysfromrolla.com/articles/053007-1.aspx [原文源码下载][翻译]开发自己的web站点管理工具(Website Administration Tool)(2)原文发布日期:2007.05.30作者:Dan Clem翻译:webabcd介绍为了方便管理用户、角色和权限设置,ASP.NET 2.0内置了Web Si

webabcd的专栏 945

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[翻译]开发一个自己的HTML在线编辑器(一)

原文地址:http://aspalliance.com/1092_Rich_Text_Editor_Part_I[原文源码下载]开发一个自己的HTML在线编辑器(一)摘要在本文中,Haissam Abdul Malak将给大家详细介绍如何使用javascript开发一个HTML在线编辑器,它可以应用于web应用程序中,特别是论坛,社区和博客。这个编辑器支持基于XHTML创建文本的功能。原文

webabcd的专栏 904

[翻译]开发自己的web站点管理工具(Website Administration Tool)(1)

原文地址:http://aspnet.4guysfromrolla.com/articles/052307-1.aspx [原文源码下载][翻译]开发自己的web站点管理工具(Website Administration Tool)(1)原文发布日期:2007.05.23作者:Dan Clem翻译:webabcd介绍基于Forms的验证,再结合ASP.NET 2.0的成员资格和角色管理系统

webabcd的专栏 855

[翻译]ASP.NET 3.5中的ListView控件和DataPager控件

原文地址:http://www.west-wind.com/WebLog/posts/127340.aspx[译者改后源码下载][翻译]ASP.NET 3.5中的ListView控件和DataPager控件原文发布日期:2007.08.02作者:Rick Strahl翻译:webabcd介绍今天,我花了几个小时的时间研究了一下ASP.NET 3.5中的ListView控件和DataPage

webabcd的专栏 816

[翻译]开发一个自己的HTML在线编辑器(二)

原文地址:http://aspalliance.com/1156_Rich_Text_Editor__Part_II[原文源码下载][翻译]开发一个自己的HTML在线编辑器(二)原文发布日期:2007.02.27作者:Haissam Abdul Malak翻译:webabcd文章内容介绍javascrit文件后置代码结论介绍在我们一起研究了如何开发一个HTML在线编辑器后(第一部分在这里

webabcd的专栏 788

[翻译]ASP.NET AJAX之内部揭秘

原文地址:http://www.codeproject.com/KB/ajax/aspnetajaxtips.aspx[原文源码下载][翻译]ASP.NET AJAX之内部揭秘原文发布日期:2006.12.22作者:About Omar Al Zabir翻译:webabcd审校:Tony Qu 介绍微软最近发布了ASP.NET AJAX的Be

webabcd的专栏 754

[翻译]在GridView中针对鼠标单击的某一独立单元格进行编辑

原文地址:http://www.codeproject.com/KB/webforms/EditGridviewCells.aspx[原文源码下载][译者改后源码下载][翻译]在GridView中针对鼠标单击的某一独立单元格进行编辑原文发布日期:2007.04.07作者:Declan Bright翻译:webabcd介绍ASP.NET的Gri

webabcd的专栏 746

[翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(3) - 触发自定义事件

原文地址:http://aspnet.4guysfromrolla.com/articles/062707-1.aspx[原文源码下载][译者改后源码下载][翻译]ASP.NET 2.0中的健康监测系统(Health Monitoring)(3) - 触发自定义事件原文发布日期:2007.06.27作者:Scott Mitchell翻译:webabcd介绍在之前的文章中(译者注:ASP.N

webabcd的专栏 724
上一篇: 扩展GridView控件(7) - 行的指定复选框选中时改变行的样式
下一篇: [翻译]asp.net ajax xml-script教程(四)
webabcd
博客等级 码龄17年 28粉丝 911原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值