AJAX / Javascript PageMethod.FunctionName, пытаясь сделать этот код многоразовым в ASP.NET - PullRequest
1 голос
/ 11 января 2010

Я реализовал 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;
    }

Ques 1. Сколько параметров я могу добавить к этой функции. Есть ли какой-то предел, что я могу отправить только 3 параметра. Пожалуйста, дайте некоторые подробности, как это работает.

Ques 2. Я хочу, чтобы приведенный выше код повторно использовался в javascript, чтобы я добавил все 3 функции на главной странице. Но проблема в том, что я могу добавить две функции в JavaScript в это время. Но для добавления третьей функции я должен отправить имя функции также в качестве параметра.

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

Это FunctionName будет именем серверной функции, которую разработчик хочет вызвать. Я могу это сделать.

1 Ответ

0 голосов
/ 11 января 2010

Вы можете в общем проверить на аргументы; в то время как в методе функции массив arguments имеет список всех аргументов для этого метода. Проверьте это: 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

...