当使用
LinkButton
时,doPostBack()函数在页面中呈现,当单击按钮时,在客户端调用doPostBack(),将表单提交给服务器,并在两个名为EVENTTARGET和EVENTARGUMENT的隐藏字段中发送信息. EVENTTARGET包含导致回发的控件名称,EVENTARGUMENT保存任何信息.
使用此ASP.NET引擎从EVENTTARGET参数获取控件名称,该参数导致回发并调用RaisePostBackEvent()事件来调用右侧服务器端事件处理程序.我理解doPostBack()如何工作以及如何调用服务器端事件处理程序.
解决方法
普通的ASP.NET
Button
呈现为HTML< input type =“submit”>具有唯一名称属性的元素.默认情况下,此HTML元素将触发与当前ASPX页面关联的
HTTP POST to the HTML form.
当HTTP POST发生时,一系列控制名称/当前值对(称为表单数据集)是从表单内部的successful controls构造的,例如文本框内的文本值就像这样传输.具有触发提交的按钮名称的一对也被发送到服务器,这就是ASP.NET知道哪个按钮触发HTTP POST的方式.
HTML规范保证只对表单中的成功控件考虑发布的表单数据集,并且因为成功控件的定义包含以下规则:
If a form contains more than one submit button,only the activated
submit button is successful.
然后,ASP.NET可以检查发布的表单数据集,以检查是否触发了任何正常按钮.