Asp.Net - действие кнопки вызова JQuery ajax - PullRequest
1 голос
/ 03 июля 2010

Допустим, я получил следующую кнопку: <asp:Button ID="btnSearch" runat="server" /> и следующий обработчик событий кнопки:

Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSearch.Click

Как, с помощью JQuery, я могу вызвать обработчик событий кнопки?

Я имею в виду, что я не хочу, чтобы страница обновлялась, так что это своего рода Ajax-вызов. Я не хочу имитировать щелчок, но обработчиком события кнопки при нажатии является вызов.

Ответы [ 2 ]

1 голос
/ 03 июля 2010
$("#<%= btnSearch.ClientID %>").click();

ОБНОВЛЕНИЕ

Есть много способов сделать это асинхронно.Вы можете настроить свою кнопку в качестве триггера для UpdatePanel, и тогда мой оригинальный ответ будет работать.Я бы не стал этого делать, но это потому, что я ненавижу UpdatePanels.

Вы можете создать метод страницы в своем коде за классом, например:

[WebMethod]
public static void Search()
{
    // Do search
}

и в вашем ScriptManager (выВам нужно будет добавить один, если у вас его нет), включить методы страницы.

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />

Тогда вам даже не нужен серверный элемент управления для вашей кнопки.Просто используйте старую старую кнопку.

<input type="button" onclick="search()" value="Search" />

// Then in javascript...
function search()
{
    PageMethods.Search(function(result)
    {
        // deal with search result here (this is the success handler)
    });
}

Или вы можете вызвать метод страницы непосредственно из jquery, , как показано в этой статье Encosia .

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

Поскольку вы обновили свой вопрос, ваш вопрос не являетсяна самом деле о том, как выполнить обработчик нажатия вашей кнопки, речь идет о том, как сделать асинхронную операцию.И это немного расплывчато.Есть миллион способов сделать это.

0 голосов
/ 03 июля 2010

Я бы посоветовал держаться подальше от AJAX от Microsoft, так как он очень тяжелый. jQuery имеет действительно простую реализацию, и если вам просто нужны простые асинхронные обратные вызовы, то вам лучше всего использовать методы страницы.

Также, чтобы сэкономить на себе, проверьте библиотеку "json2" для сериализации json всего. У меня еще не было этого, и мне пришлось сериализовать некоторые довольно сложные объекты. текст ссылки

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