1

我已经实现了 AJAX 以使用客户端函数调用调用服务器端函数,即通过在 javascript 中使用 PageMethod 使用 javascript 标记调用服务器端函数。

我对相同的实现几乎没有疑问。

      function OnBlurCall()
      {
        chk(ControlId, SpanMsgId, FunctionName)// where all these parameters are obtained from programmer.
      }

   function chk(ControlId,SpanMsgId, FunctionName)
   {
     PageMethods.FunctionName(ControlId.value,onSuccess,onFail,SpanMsgId); // I want to replace actual value of FunctionName i.e Something given below
     PageMethods.CheckUserNameAvailability(ControlId.value,onSuccess,onFail,SpanMsgId);
   }

   function onSuccess(result,MsgId,methodname)
    {
        MsgId.innerHTML=result;
    }

    function onFail(error,MsgId,methodname)
    {
            MsgId.innerHTML=error;
    }

问题 1. 我可以向这个函数添加多少个参数。是否有一些限制,我只能发送 3 个参数。请详细说明它是如何工作的。

问题 2. 我想在 javascript 中重复使用上述代码,以便在母版页中添加所有 3 个函数。但问题是我现在可以在 javascript 中添加两个函数。但是为了添加第三个函数,我还必须将函数名作为参数发送。

PageMethods.FunctionName(ControlId.value,onSuccess,onFail,SpanMsgId);

这个 FunctionName 将是开发人员想要调用的服务器端函数的名称。我可以这样做吗??

4

1 回答 1

0

您通常可以检查参数;而在函数方法中,参数数组具有该方法的所有参数的列表。看看这个:https ://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/Arguments

要动态调用,您可以考虑使用 WebServiceProxy:http ://www.asp.net/ajax/documentation/live/clientreference/Sys.Net/WebServiceProxyClass/WebServiceProxyInvokeMethod.aspx

于 2010-01-11T13:58:51.057 回答