【问题标题】:AJAX/Javascript PageMethod.FunctionName, Trying to made this code reusable in ASP.NETAJAX/Javascript PageMethod.FunctionName,试图使这段代码在 ASP.NET 中可重用
【发布时间】:2010-01-11 12:15:51
【问题描述】:

我已经实现了使用客户端函数调用调用服务器端函数的 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 将是开发人员想要调用的服务器端函数的名称。 我可以这样做吗? ?

【问题讨论】:

    标签: asp.net ajax asp.net-ajax ajax.net


    【解决方案1】:

    您可以一般地检查参数;而在函数方法中,参数数组具有该方法的所有参数的列表。看看这个: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

    【讨论】:

      猜你喜欢
      • 2022-08-03
      • 1970-01-01
      • 2021-11-11
      • 2018-04-30
      • 1970-01-01
      • 2019-08-30
      • 2020-04-11
      • 2012-02-17
      • 2019-02-25
      相关资源
      最近更新 更多