Подтвердить что ты не робот

Как сделать сообщение onclientclick с помощью jQuery с помощью asp.net

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

Например, в Stackoverflow, когда вы голосуете вверх или вниз по вопросу, он делает обратную передачу для обновления базы данных, и я бы поспорил, что они не использовали панель обновления.

Что у меня есть?

У меня есть таблица с данными таблицы. Когда я нажимаю на элемент td в качестве целого столбца, я хочу сделать обновление базы данных, а также обновить gridview на самой странице. В gridview отображаются все текущие элементы в таблице, потому что они были обновлены с помощью "нашего метода".

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

4b9b3361

Ответ 1

Способ работы стека переполнения отличается двумя важными способами из этой статьи CodeProject.

  • Qaru делает свой запрос AJAX против действия контроллера ASP.NET MVC, а не отдельной страницы ASPX. Вы можете считать это аналогом MVC метода страницы ASP.NET AJAX. В обоих случаях метод ASPX будет отставать от производительности.

  • Переполнение стека. Запрос AJAX возвращает результат сериализации JSON, а не произвольный открытый текст или HTML. Это делает обработку на стороне клиента более стандартизованной и, как правило, более чистой.

Например: когда я проголосовал за этот вопрос, запрос XmlHttpRequest был сделан в /questions/ 171000/vote, с "voteTypeId" из 2 в данных POST.

Контроллер, который обрабатывал запрос, добавил мой голос в таблицу где-то, а затем ответил этим JSON:

{"Success":true,"NewScore":1,"Message":"","LastVoteTypeId":2}

Используя эту информацию, этот JavaScript заботится об обновлении клиентского дисплея:

var voteResult = function(jClicked, postId, data) {
  if (data.Success) {
    jClicked.parent().find("span.vote-count-post").text(data.NewScore);
    if (data.Message)
      showFadingNotification(jClicked, data.Message);
  }
  else {
    showNotification(jClicked, data.Message);
    reset(jClicked, jClicked);

    if (data.LastVoteTypeId) {
      selectPreviousVote(jClicked, data.LastVoteTypeId);
    }
  }
};

Если вы используете WebForms, пример вызова методов страниц, который вы нашли в моем блоге, определенно находится в правильном шаге.

Однако я бы предположил, что вы рассматриваете веб-сервис для любой централизованной функциональности (например, этот пример голосования) вместо методов страниц. Методы страниц кажутся немного легче писать, но они также имеют некоторые недостатки повторного использования и, как правило, создают иллюзию дополнительной безопасности, которая на самом деле не существует.

Это пример того, что вы нашли, но с веб-службами (комментарии к этому сообщению фактически привели к сообщению, которое вы нашли):

http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

Ответ 2

Вы можете просто использовать стандартный вызов AJAX для выполнения этого. Создайте страницу .aspx, которая обновляет базу данных по методу Page_Load и отображает любую необходимую информацию (например, текущее значение БД после обновления) в формате XML. Затем выполните вызов AJAX на эту страницу с помощью jQuery.

Вы также можете вернуть фрагмент HTML (т.е. обновленный GridView) и использовать jQuery для вставки обновленного HTML в текущую страницу.

Изменить: Пример 2 на этой странице должен быть очень близок к тому, что вы хотите:
http://www.codeproject.com/KB/ajax/AjaxJQuerySample.aspx

Ответ 3

Этот ссылка - это то, что я нашел, что лучше всего делать, и позволить мне использовать javascript и веб-методы.