【发布时间】:2011-08-16 11:16:40
【问题描述】:
我想了解 asp.net 框架如何知道按钮何时被点击,因此一旦它收到请求就会在服务器上触发其点击事件。
我需要了解它是如何工作的,因为我想从 javascript 触发按钮的服务器点击事件。
我可以通过 JavaScript 提交页面:
document.forms[0].submit();
但是如何做同样的事情,让 asp.net 认为按钮点击已经发生,所以在服务器上,一旦收到请求,它的点击事件就会触发。
谢谢
更新 1
感谢大家的回复。如果我添加一个 asp.net 按钮并通过查看源代码进行一些测试,我似乎无法找到生成的 JavaScript“__doPostBack”函数。
这是我尝试过的测试。
我有一个普通的 HTML 按钮 (button1) 和一个 asp.net 按钮。(button2)
从 HTML 按钮的单击事件 (button1),我添加了一个客户端调用,以传递 asp.net button2 id 的 javascript __doPostback 方法。
所以我试图通过调用 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>
更新 2
如果我将按钮的“UseSubmitBehavior”属性设置为 false,那么它会生成 __doPostBack 方法,并通过从客户端调用它会在服务器上引发事件。
那么提交和回发之间有什么区别? (我将为此开始一个新线程)。
感谢您的帮助!
【问题讨论】:
标签: c# javascript asp.net