我想了解 asp.net 框架如何知道何时单击了按钮,因此一旦收到请求,就会在服务器上触发其单击事件。
我需要了解它是如何工作的,因为我想从 JavaScript 触发按钮的服务器单击事件。
我能够从 JavaScript 执行页面提交:
document.forms[0].submit();
但是如何才能做到同样的事情,以便 ASP.NET 认为发生了按钮单击,因此在服务器上,一旦收到请求,就会触发其单击事件。
Thanks
UPDATE 1
谢谢大家的回复。如果我添加一个 asp.net 按钮并通过查看源代码进行一些测试,我似乎无法找到生成的 JavaScript“__doPostBack”函数。
这是我尝试过的测试。
我有一个普通的 HTML 按钮 (button1) 和一个 asp.net 按钮。(button2)
从 HTML 按钮的单击事件 (button1) 中,我添加了对 javascript __doPostback 方法的客户端调用,并传入 asp.net button2 id。
所以我试图通过调用 html 按钮(button1)来触发服务器端button2点击事件。
<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>
UPDATE 2
如果我将按钮“UseSubmitBehavior”属性设置为 false,那么它会生成 __doPostBack 方法,并且通过从客户端调用它,它会在服务器上引发事件。
那么提交和回发之间有什么区别呢? (我将为此启动一个新线程)。
谢谢您的帮助!