2010-08-28 3 views
2

Я пытаюсь узнать, как работает AJAX под капотом. Скажем, у меня есть форма asp.net с кнопкой на ней. Затем я имею базу данных с одним столбцом DateTime. Когда я нажимаю кнопку в форме asp.net, я хочу вставить столбец в базу данных с текущим временем.Asychnronous Сообщение Отправить Asp.net

Я буду иметь C# обработчика события:

protected void btnButton_OnClick(Eventargs e, object sender) 
{ 
    //insert DateTime.now into DB 
    //This part is easy 
} 

То, что я хотел бы произойти на самой форме должна иметь кнопку кнопки не перегрузить форму. Он просто отправит сообщение на сервер; нет причин для перезагрузки страницы. Какими способами я мог бы это сделать?

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

  2. Используйте вызов __doPostBack в javascript. Я понятия не имею, как это работает.

+1

наверняка вы имеете в виду вставить * ряд *, а не столбец, правильно? – Tahbaza

ответ

2

Похоже, что вы частичные к предоставленным Microsoft библиотекам javascript, и это нормально. UpdatePanel и тому подобное имеют свое место, но я обнаружил, что когда вам нужно делать что-то очень простое и простое, как то, что вы описываете, проще и чище сделать это с помощью прямого вызова ресурса сервера из Javascript ,

Существует много способов сделать это, но мне нравится использовать метод $ .ajax() jquery для вызова методов webservice (или действия MVC в последнее время). Если вы хотите изучить несколько несколько разных технологий, вот blog post, которые дадут вам представление о том, что я говорю.

1

ASP.NET Ajax имеет 2 основных части:

  • сторона сервер управление на основе стороны каркас
  • клиента (который называется Microsoft Ajax)

С первым вы выберете для использования элемента управления UpdatePanel. Тем не менее, он по-прежнему отправляет много ненужных данных по проводу, как и полное представление, ваши страницы соответствуют почти всему жизненному циклу страницы, как при обычной обратной передаче. В основном я рекомендую не использовать это в производственном коде.

Вторая часть представляет собой ajax-библиотеку, основанную на чистом javascript, с прикосновением к Microsoft. Он имеет сходство с жизненным циклом страницы, как функция pageLoad, и это довольно легко изучить.

__doPostBack

Эта функция получает вставляется, когда вы размещаете определенные элементы управления сервера в вашей странице, как контроль LinkButton. Вы можете вызвать это из javascript напрямую, но знаете, что это вызовет полную обратную передачу страницы на сервер, поэтому, если вы хотите избежать этого, не переходите по этому пути.

В течение последних 2 лет, однако, я стал большим поклонником jQuery, который хорошо работает вместе с ASP.NET и ASP.NET MVC.

Предлагаю вам прочитать эту прекрасную статью, чтобы получить дополнительную информацию об этом: Using jQuery with ASP.NET Part 2: Making an AJAX Callback to ASP.NET.
jQuery сам также был принят и одобрен Microsoft. Я настоятельно рекомендую вам взглянуть на это и его силу.

Смежные вопросы