Я хотел бы понять, как инфраструктура asp.net знает, когда была нажата кнопка, и, как только она получает запрос, запускает событие щелчка на сервере.
Мне нужно понять, как это работает, как я хотел бы вызвать событие нажатия кнопки сервера из JavaScript.
Я могу выполнить отправку страницы из JavaScript:
document.forms[0].submit();
Но как можно сделать то же самое, чтобы asp.net подумал, что нажатие кнопки произошло, поэтому на сервере его событие нажатия срабатывает после получения запроса.
Спасибо
ОБНОВЛЕНИЕ 1
Спасибо всем за ответы. Выполняя несколько тестов, если я добавлю одну кнопку asp.net и, посмотрев на исходный код, я не могу найти сгенерированную функцию JavaScript «__doPostBack».
Это тест, который я пробовал.
У меня есть одна обычная кнопка HTML (button1) и кнопка asp.net. (Button2)
Из события нажатия кнопки HTML (button1) я добавил клиентский вызов методу javascript __doPostback, передавая идентификатор asp.net button2.
Поэтому я пытаюсь вызвать событие нажатия кнопки button2 на стороне сервера, вызвав кнопку html (button1.)
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button1" type="button"
value="Raise Button2 server side click event"
onclick="javascript:__doPostBack('Button2', '')" />
<asp:Button ID="Button2" runat="server"
Text="asp.net_Button2"
OnClick="button2Click" />
</div>
</form>
</body>
</html>
и сгенерированный HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title>
</head>
<body>
<form name="form1" method="post" action="Default6.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
value="/wEPDwUKMjA0OTM4MTAwNGRke29WUkB+FLhQArxd1ehT98cWw1Y=" />
</div>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION"
value="/wEWAgKLs+3sDgK7q7GGCBs2MBvLk9CJNnA02t08R1LKdiJU" />
</div>
<div>
<input id="Button1" type="button" value="Raise Button2 server side click event"
onclick="javascript:__doPostBack('Button2', '')" />
<input type="submit" name="Button2" value="asp.net_Button2" id="Button2" />
</div>
</form>
</body>
</html>
ОБНОВЛЕНИЕ 2
Если установить для атрибута кнопок «UseSubmitBehavior» значение false, он сгенерирует метод __doPostBack и, вызывая его из клиента, вызовет событие на сервере.
Так в чем же разница между отправкой и обратной передачей? (Я начну новую тему для этого).
Спасибо за помощь!