Как вызвать метод страницы без перезагрузки страницы? - PullRequest
3 голосов
/ 21 августа 2011

Может показаться, что это FAQ.но я кое-что запомнил и позволил мне это объяснить.Я ищу тест для этого, и в конце я нашел следующее:

  1. Jquery With Ajax
  2. Webform_Docallback
  3. ScriptManager и UpdatePanel

, поэтому мне нужно первое решение Something Like, но также требуется доступ к this объекту и даже page controls.и причина не использовать второе и третье решение, они называют Page-Reload first and then call that method.Так вот что мне нужно!

Есть ли какое-нибудь решение?какие-нибудь советы?

Additional Info :
Мне нужно что-то вроде: вызвать метод по button_click и перейти на сторону сервера.на стороне сервера вызовите Wcf-Service и, наконец, что-нибудь сделайте.(например, привязка источников данных сетки, изменение значений текстовых полей и т. д.).

Почти jQuery with Ajax - это то, что мне нужно.но у меня есть эти проблемы с этим способом!

  1. не имел доступа к этому объекту
  2. не имел доступа к элементам управления страницей

Итак, как решить эту проблему?

Ответы [ 3 ]

3 голосов
/ 21 августа 2011

Для первого

Создание WebMethod в файле .cs

[WebMethod]
public static string Foo() 
{ 
  //......
}

Если вы хотите использовать сессию, вы должны

[WebMethod(EnableSession = true)] or [WebMethod(true)]
public static string Foo() 
{
    //......
}

Затем вызовите webmothod с помощью js

$.ajax({
type: "POST",
contentType: "application/json",
url: "WebForm1.aspx/Foo",
data: "{}",
dataType: "json",
success: function(){.......}
});

Надеюсь, что это полезно ...

3 голосов
/ 21 августа 2011
        [WebMethod()]
        [System.Web.Script.Services.ScriptMethod()] 
        public static void YourTaskNAme(Your Parameter)
        {
             // Yuor Code here
        }

Обновите диспетчер скриптов, чтобы иметь следующее свойство EnablePageMethods="true"

наконец используйте JavaScript для вызова этого метода

PageMethods.YourTaskNAme(Your Parameter, OnMethodFinished);

function OnMethodFinished() {
alert('Call to function worked.')
        }
2 голосов
/ 21 августа 2011

Вы можете обойти любую логику, имеющуюся в вашем методе Page_Load, проверив свойство ScriptManager.IsInAsyncPostBack с помощью ScriptManager и UpdatePanel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...