Как получить результат функции jQuery PageMethods - PullRequest
0 голосов
/ 22 апреля 2010

Я опубликовал аналогичный вопрос к этой проблеме и мог бы ответить на него сам, но решение не полностью удовлетворяет меня.

Используя Asp.Net/C#, у меня есть кнопка, которая выполнит некоторый серверный код, если он проходит проверку на стороне клиента. Я хочу сделать это таким образом, потому что для моего приложения, я думаю, это подходит лучше всего.

<asp:Button runat="server" ID="addBtn" Text="Add" OnClientClick="if(validateEntry()== false){return false;}" OnClick="addBtn_Click"/>

Я вызываю функцию jQuery с именем validateEntry (), которая использует PageMethods для получения некоторых данные с сервера. Данные необходимы для процесса проверки.

function validateEntry() {

PageMethods.CheckEntry(params, function(result){//Evaluate result of PageMethods}
}

Моя проблема в том, что я не знаю, как правильно обрабатывать данные, полученные из PageMethods. Я могу передать их только подфункции, которая может их использовать. Но мне нужно данные в виде переменной для возврата false.

Ответы [ 3 ]

0 голосов
/ 22 апреля 2010

Я разработал решение, но был бы благодарен за более простые.

Я использую скрытое поле на странице и в подфункции, я записываю результат из метода страницы в поле:

$("#pageMethodsResultField").val(result);

После этого я могу прочитать результат из поля и использовать его в основной функции.

0 голосов
/ 06 мая 2010

Учитывая, что PageMethods.CheckEntry запускает переданную функцию без задержки, вы можете сделать это:

function validateEntry() {
  var foo;
  PageMethods.CheckEntry(params, function(result){
    foo = "bar";
  });
  alert(foo);
}

Если вы попробуете это, а «foo» не отобразится, то функция будет отложена, и вам нужно переосмыслить, как это сделать, или предоставить дополнительную информацию, чтобы мы могли вам помочь.

0 голосов
/ 22 апреля 2010

Я опубликовал пример того, как использовать методы страницы из jquery здесь .

...