首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET如何知道单击了哪个按钮以引发其事件

ASP.NET如何知道单击了哪个按钮以引发其事件
EN

Stack Overflow用户
提问于 2012-05-17 21:59:11
回答 2查看 3.7K关注 0票数 5

当使用LinkButton时,doPostBack()函数在页面中呈现,当单击按钮时,在客户端调用doPostBack(),将表单提交给服务器,并在两个隐藏字段EVENTTARGETEVENTARGUMENT中发送信息。EVENTTARGET保存导致回发的控件名称,EVENTARGUMENT保存所有信息。

使用此ASP.NET引擎从导致回发的EVENTTARGET参数中获取控件名称,并调用RaisePostBackEvent()事件来调用正确的服务器端事件处理程序。我了解doPostBack()是如何工作的,以及服务器端事件处理程序是如何调用的。

然而,对于一个普通的服务器按钮,如何调用服务器端正确的按钮点击呢?如何通知ASP.NET客户端被单击的控件名称?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-17 22:28:09

一个普通的ASP.NET Button被呈现为一个具有唯一name属性的HTML <input type="submit">元素。默认情况下,此元素将触发与当前ASPX页面相关联的HTTP POST to the HTML form

当HTTP POST发生时,将从表单内的successful controls构造一系列控制名称/当前值对,称为表单数据集,例如,文本框内的文本值按如下方式传输。一对带有触发提交的按钮的名称也被发送到服务器,这就是ASP.NET知道哪个按钮触发了HTTP POST的方式。

HTML规范保证,对于发布的表单数据集,只考虑表单中成功的控件,因为成功控件的定义包含以下规则:

如果表单包含多个提交按钮,则只有激活的提交按钮才会成功。

然后,ASP.NET可以检查发布的表单数据集,以检查是否触发了任何正常按钮。

票数 4
EN

Stack Overflow用户

发布于 2012-05-17 22:27:56

一般来说,你永远不必担心点击按钮的内部细节。这就是.Net的美妙之处。

但是,要确切地知道客户端调用了什么,您可以简单地查看页面的源代码,并查看某个按钮调用了什么。

示例:

代码语言:javascript
运行
复制
<input name="ctl00$MainContent$btnMyButton" id="ctl00_MainContent_btnMyButton" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContent$btnMyButton", "", true, "", "", false, false))" type="submit" value="My Button"/>

注意到.Net注入了以下javascript例程:

代码语言:javascript
运行
复制
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContent$btnMyButton", "", true, "", "", false, false))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10637157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档