【发布时间】:2020-05-01 10:13:14
【问题描述】:
我有一个位于 JavaScript 对话窗口中的 asp:Button。它有一个名为 DialogWindowButton_Click 的 OnClick 事件,如下面的代码所示。该事件没有触发,我在 C# 文件中放置了断点,它甚至没有进入函数。我不确定为什么,并查看了其他论坛帖子以试图解决这个问题。我有 1)删除按钮并重新创建按钮和 OnClick 事件本身(这不起作用),以及 2)将 CausesValidation="False" 添加到 asp:Button 标记。这两种途径都没有奏效。我所拥有的如下所示:
<div style="margin:auto; width:100px; padding-bottom:15px;">
<asp:Button ID="DialogWindowButton" runat="server" Text="Save Entry"
OnClick="DialogWindowButton_Click" CausesValidation="False"/>
</div>
然后在 C# 文件中,我有:
...
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DialogWindowButton_Click(object sender, EventArgs e)
{
DialogWindowButton_ClickHelper();
...
}
protected AddressBookEntry DialogWindowButton_ClickHelper()
{
...
}
...
我有 CodeBehind 标记和 Inherits 标记的正确文件。在 C# 文件中,您可以看到原始 OnClick 事件调用直接在其下方定义的辅助函数,但未到达 DialogWindowButton_Click() 顶部的断点。也没有构建错误。可能还有其他我想念的东西吗?谢谢!
【问题讨论】:
-
aspx页面的
CodeBehind和Inherits是什么?当您尝试打开页面时是否会触发 Page_Load? -
只需在 Page_Load 上设置一个断点,它确实会按预期触发。原始文件是 AddressBook.aspx。 CodeBehind 是 AddressBook.aspx.cs。而继承是_321SOS.WebForm1。
-
你试过设置
UseSubmitBehavior为false(默认为true)。 -
是的,这行得通!谢谢!这个属性是如何使它工作的?
-
我已经添加了解释的答案。请检查。
标签: c# asp.net onclick event-handling