vs2008中js调用web服务实现下拉框多级联动小记

1.添加web服务

  在web项目中‘添加新项’->‘添加web服务’(注意文件后缀名是.asmx,不是.ashx的一般处理文件),添加完成后就会在你刚才所选的路径下出现后缀名为.asmx的web服务文件,而对应的类文件会被自动的放到App_code文件下,便于在整个项目中调用,类文件包括一个类及其helloworld的示例web服务方法,在类和方法上部以及自动加好了实现web服务的一些特性,其中类的前面有这样一个特性[System.Web.Script.Services.ScriptService],默认是被注释掉了,要取消注释(便于使用 ASP.NET AJAX 从脚本中调用此 Web 服务),然后就可以在类里面添加你需要的web服务方法,注意在方法前要加上[WebMethod]的特性。

2.客户端设置

  在客户端页面上要加名称为ScriptManager的ajax控件(通常内嵌于body标签里面),可直接从工具栏的ajax extensions选项卡下拖拽,在内嵌脚本中引用刚才建的web服务,如下所示

< Services >
< asp:ServiceReference Path ="~/WebSve.asmx" />
</ Services >

3.js中调用web服务

  关于js代码的位置要注意,不能放在header标签里面(不能识别web服务的方法),其他位置均可,具体调用采用的形式为:类名.方法名(参数1,参数2,回调函数)

  在回调函数中处理web服务的返回结果,web服务方法返回结果在js都能智能识别,比如说一个泛型列表在js中就变成了集合,泛型中的元素如果是类,则类的属性可直接引用,有关其他返回类型在js中的识别,可在客户端调试模式下(可直接加断点或在js中加debugger语句,浏览器也要进行相应设置),添加‘监视’,在监视窗口中可以查看被监视变量的详细属性和方法。

4.页面回发时如何保留客户端控件回发前的状态

  由于客户端控件无法像服务器控件呢样保存其视图状态,这一点对select控件尤其如此,我采用的解决办法是:既然服务器控件可以保留视图状态,呢就用隐藏的服务器控件保留当前select控件的选择值,在页面回发后页面加载事件(客户端)中,将select控件的等于隐藏控件中保存的值的选项置为选中,这样就实现了客户端控件视图状态的保留。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值