日期:2014-05-18  浏览次数:20395 次

100分我想问个问题:关于在AJAX 1.0中 JAVASCRIPT调用PageMethods的一个问题!
我做一个网站,需要从前台的javascript中调用后台的service

用的是ajax 1.0 正式版

现在出现了一个问题,我在后台的_default类里写了一个 <WebMethod()> _ (VB.NET,C#为[WebMethod])

的过程,用来在前台调用,但是好像必须在这个过程前加上Shared(VB.NET,C# 为STATIC)才能调用.一加上这个之后,就出现了许多

"没有类的显式实例,就无法从共享方法或共享成员初始值设定项中引用该类的实例成员"

比如我原来有个语句叫DataList1.DataBind()

现在这个语句就不能执行了,就是说在过程中加上shared后,服务器控件都不能直接通过名字访问了

都我该怎么办,现在我对Vb.net的面向对象不是很甚了解,所以希望能指点明路

------解决方案--------------------
页面调用后台服务及方法,看一下WEBCAST中赵劼的AJAX教程
------解决方案--------------------
在1.0正式版当中是这样的,PageMethod就相当于Web Service里面的一般WebMethod,反正就是不能访问Page实例。以前CTP的时候并非如此的,确实能够好像你所说的那样,想访问Page中某个控件直接操作就是了。但是正式版中基于效率的考虑,取消了这一功能,因此PageMethod必须是静态的,也就是请求的过程中,并没有任何Page实例与当前请求相关联,不能使用Page的任何功能。