使用ASP.NET AJAX框架扩展HTML Map控件(2)_.Net教程
推荐:ASP.NET调用oracle存储过程实现快速分页《使用 ADO.NET 访问 Oracle 9i 存储过程》见下面的介绍(如果对这个不怎么懂的,还是先看看下面文章) http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx 包
现在,编写我们的Web方法:
以下为引用的内容: [WebMethod] [ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)] public string GetAreaInfo(string area) { return area; } |
根据权威人士建议,为了安全起见,我们一般要使用HttpPost(或者HttpGet= false)方式访问Web方法。然后,我们把返回的数据格式配置为JSON格式(默认方式即为JSON方式)。
为了简化起见,这里的GetAreaInfo方法仅仅返回输入参数的相同值;但在实际开发中,我们应该在此替换以从数据库中检索数据。
到目前为止,我们已经成功创建从客户端以AJAX方式加以调用的Web服务。
但是,我们还要对页面中的服务器控件ScriptManager进行一些适当的配置,如下所示:
以下为引用的内容: <asp:ScriptManager ID="ScriptManager1" runat="server"> <services> <asp:servicereference path="~/LocationService.asmx" /> </services> </asp:ScriptManager> |
从生成的HTML源码分析,上面的配置将生成如下所示内容:
以下为引用的内容: <script src="LocationService.asmx/jsdebug" type="text/javascript"></script> |
这里的脚本标签引用了一个JavaScript文件LocationService.asmx/jsdebug。其实这是一个Web服务代理类。正是通过此代理类,我们才得以从客户端以异步方式调用服务器端的Web服务。
更有意思的是,如果你简单地复制显示在上面的路径到浏览器中,你将看到一个在运行时刻由AJAX环境生成的JavaScript文件—此文件使脚本服务调用可用。有关代理类,我们不再深入讨论。
下面,我们来看如何创建一个定制的客户端类。
四、 创建客户端定制类
我们知道ASP.NET AJAX框架的重大“发明”之一就是,它引入了面向对象的JavaScript编程模型。现在,借助于JavaScript设计模式,我们可以轻松地创建自己的模板或类,加入继承概念,创建接口与枚举等。
在本文中,我们将开发一个封装所有本示例中要求功能的客户端类。
现在,右击工程,并新添加一个名为ImageMap的JavaScript文件。在此文件中,我们将定义一个新的命名空间MyServices;这个命名空间将包含我们要开发的客户端类。如下所示:
以下为引用的内容: Type.registerNamespace("MyServices");
MyServices.Location = function (uiElement, uiBody) { |
一个模板或类的构造函数也只不过是一个普通的JavaScript函数。该构造器共有两个参数:uiElement和uiBody。
分享:复杂ASP.NET服务器控件调整小技巧在创建或修改布局复杂ASP.NET服务器端控件时,大量的时间都是在编译,等待JIT,修改,编译,JIT... 这样一个循环中,而且两个编译常常还很耗费时间。特别地,当控件已集成在页面之中后,在出现
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP发送Email实例(可带附件)
- js实现广告漂浮效果的小例子
- asp.net Repeater 数据绑定的具体实现
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- VS2010 水晶报表的使用方法
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net页面传值测试实例代码
- DataGridView - DataGridViewCheckBoxCell的使用介绍
- asp.net中javascript的引用(直接引入和间接引入)
- 三层+存储过程实现分页示例代码
- 相关链接:
- 教程说明:
.Net教程-使用ASP.NET AJAX框架扩展HTML Map控件(2)。