【发布时间】:2011-06-05 20:54:28
【问题描述】:
Button.UseSubmitBehavior property 用于获取或设置一个值,该值指示 Button 控件是使用客户端浏览器的提交机制还是 ASP.NET 回发机制。
那么,客户端浏览器的提交机制和ASP.NET的回发机制有什么区别呢?
【问题讨论】:
标签: asp.net button postback submit
Button.UseSubmitBehavior property 用于获取或设置一个值,该值指示 Button 控件是使用客户端浏览器的提交机制还是 ASP.NET 回发机制。
那么,客户端浏览器的提交机制和ASP.NET的回发机制有什么区别呢?
【问题讨论】:
标签: asp.net button postback submit
根据您引用的文档,默认行为似乎使用表单中的标准提交按钮提交表单,而将其设置为 false 将改为执行以下操作:
<input type=button onclick="submitForm()" />
默认的表单行为是:
<form><input type=submit /></form>
【讨论】:
如果将使用提交行为设置为 false,ASP.NET 将通过调用“__doPostBack”方法生成脚本来处理提交,如以下代码。该方法将为事件目标添加值,以告诉服务器哪个元素触发当前事件。
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['ctl00'];
if (!theForm) {
theForm = document.ctl00;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<input type="button" name="Button1" value="Submit" onclick="javascript:__doPostBack('Button1','')" id="Button1">
另一方面,如果将使用提交行为设置为 true,ASP.NET 将生成按钮作为输入类型提交而不是类型按钮。使用时点击该按钮,表单会正常提交。
<input type="submit" name="Button1" value="Submit" id="Button1">
这两种方式在服务器端没有区别。但是如果你将使用提交行为设置为 true,它会生成更清晰的 XHTML。
【讨论】: