Что означает «javascript: _doPostBack (« Gridview »,« Edit $ 0 »)», полная обратная запись все еще происходит? - PullRequest
0 голосов
/ 17 июля 2010

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

Но в Visual Studio 2008 элементы управления ASP.NET C # я видел, что когда страница отображается в браузере, элементы управления, а именно GridView, FormView и LINKBUTTON (!), Все это показывают javascript:thing, когда курсор находится на их. Почему?

Обратная запись все еще происходит. Даже кнопка ссылки имеет эту функцию JavaScript, и всякий раз, когда вы нажимаете на нее, происходит полный пост.

Изменение label.text и т. Д. Также включено в событие загрузки страницы!

  • так почему JavaScript? Почему не простая кнопка? Почему кнопка ссылки?

Ответы [ 2 ]

1 голос
/ 17 июля 2010

В этом случае вызовы JavaScript могут использоваться для отправки дополнительных данных на сервер, например, сохраните некоторые данные клиента для сетки (например, ширину столбцов с измененным размером или что-то подобное). Платформы на стороне сервера используют этот подход, чтобы парни на стороне сервера могли генерировать весь код на стороне клиента. Это своего рода быстрые и грязные решения (по сравнению с хорошо организованным ненавязчивым JavaScript).

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

ASP.NET не имеет состояния.То есть каждый раз, когда запрашивается страница, сервер фактически создает всю страницу и ее элементы управления и состояние, а затем отвечает на запрос.Затем он отображает соответствующую разметку HTML в качестве ответа на запрос.

Для любого элемента управления, если для свойства autopostback установлено значение true, страница отправляется обратно на сервер, если элемент управления вызывает обратную передачу (например, нажавкнопка ссылки).

Как ASP.NET отправляет страницу обратно?Это делается с помощью функции JavaScript, называемой _doPostBack ().Функция -

function __doPostBack(eventTarget, eventArgument) {
 if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
  theForm.__EVENTTARGET.value = eventTarget;
  theForm.__EVENTARGUMENT.value = eventArgument;
  theForm.submit();
 }

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

, если у вас есть этот код на странице aspx -

<asp:LinkButton ID="lnkButton" runat="server">LinkButton</asp:LinkButton>

Соответствующая сгенерированная разметка будет -

<a id="LinkButton1" href="javascript:__doPostBack('lnkButton','')">LinkButton</a>

Итак, скажем, вы нажимаете на кнопку ссылки, страница отправляется обратно функцией __doPostBack ().Затем страница воссоздается на сервере с соответствующим состоянием элемента управления на странице.Чтобы получить состояние каждого элемента управления на странице, используются такие механизмы, как viewstate.После загрузки страницы сервер вычисляет и отображает разметку ответа.

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