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

急!PageMethods问题!
我们知道在js中可以通过PageMethods调用.cs中的静态方法 
如:
JScript code

function A()
{
    PageMethods.MyFunc('strID',B);
}
function B(str)
{
    alert(str);
}


但是现在有一个新的问题,如果我的B方法要求有两个输入参数,那么A方法在调用PageMethods的时候该怎么写? 
JScript code

function B(str,strName)
{
    alert(str + strName);
}



------解决方案--------------------
方法B只能有一个参数, 如果你需要2个参数的话,你可以吧这个参数定义为一个数组或者一个结构.
------解决方案--------------------
你可以定义全局型变量
------解决方案--------------------
把两个参数连成一个字符串,比如用,分隔,在JS里在处理也可以
------解决方案--------------------
B方法不是你调用的所以不存在你说的有两个输入参数的问题!

B方法只是你的PageMethods.MyFunc方法调用成功后的回调函数,

其实传给B方法的那个参数是你调用完PageMethods.MyFunc后的返回值,由于PageMethods.MyFunc只能有一个返回值!

所以不存在你说的B方法有两个输入参数的情况!

但是如果你确实需要在PageMethods.MyFunc中返回多个参数的话你可以用简单的楼上说的字符串拼接,比如逗号之类的分割!

然后在B方法中解析出你传回来的值,也可以在PageMethods.MyFunc传回一个LIst在B方法中通过str[i]来访问!

我个人比较喜欢的是通过Json对象来传递PageMethods.MyFunc的返回值到B方法中。