【发布时间】:2015-10-30 04:48:32
【问题描述】:
先决条件,我对事件冒泡还很陌生。
我有一个带有gridview 的页面,其中行中有按钮。单击该按钮时,它会触发 OnCommand 事件,一切都按预期工作。
<ItemTemplate>
<asp:Button ID="btnG" runat="server" OnCommand="btnG_Command" Text="View"/>
</ItemTemplate>
... (on the codebehind) ..
Protected Sub btnG_Command(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs)
'Does some stuff
当我在母版页上添加一个文本框(带有验证器)和一个按钮时,现在当单击 gridview 中的按钮时,它会出于某种原因触发母版页中的验证器。
<asp:RequiredFieldValidator ID="ReqValidator" runat="server" ControlToValidate="txtTextbox" Display="Dynamic" ErrorMessage="Please enter a valid number."></asp:RequiredFieldValidator>
通过一些研究,我发现它与事件冒泡有关,因为 gridview 中的按钮控件使用的是 OnCommand 而不是 OnClick。
我的问题是为什么它会在主页面中触发验证器?冒泡不应该先通过 GridView 而不是母版页吗?如何绕过验证器或事件冒泡,以便从内容页面触发正确的事件?
【问题讨论】:
标签: asp.net gridview event-handling master-pages