【问题标题】:Asp button does not fire OnClick eventAsp 按钮不会触发 OnClick 事件
【发布时间】:2015-12-01 17:26:55
【问题描述】:

我已经搜索了论坛,但尚未找到解决我的具体问题的方法。我正在写一个带有

的asp.net aspx页面
<asp:Button ID="Add" OnClick="Add_Click" runat="server" Text="Add" CausesValidation="False"/>

Visual Studio 甚至自动填充了我的 OnClick 函数,而我的函数背后的 VB 代码如下所示:

Protected Sub Add_Click(sender As Object, e As EventArgs) Handles Add.Click
    Server.Transfer("TimeReportingAdd.aspx", False)
End Sub

我有一个按钮设置类似的另一个页面,它工作正常。在调试期间甚至不会命中事件。主页 (TimeReporting.aspx) 只是在单击时刷新,我希望它重定向到另一个页面 (TimeReportingAdd.aspx)。该按钮没有被复制,而是创建了新的,事件是通过在设计器中双击来创建的。 runat="server" 存在于我的所有内容标题等中。我认为我的 TimeReporting.aspx 页面标题不需要任何验证元素,因为有效的页面没有它们。添加按钮在我的 vb 代码后面声明如下:

Protected WithEvents Add As Global.System.Web.UI.WebControls.Button

另外,在另一个页面中工作的按钮更容易,甚至没有点击或验证:

<asp:Button ID="Button1" runat="server" Text="Query" />

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
...
End Sub

我已尝试多次删除该按钮并再次添加它。提前致谢!

【问题讨论】:

  • 关键是你说CausesValidation="False" 没有调用你的事件。尝试将其更改为 true。
  • 谢谢,但这并没有影响
  • 您的按钮或事件是否存在名称冲突(add 非常通用)?它在更新面板内吗?尝试添加一个具有新名称的新按钮并确保它有效。
  • 使用 OnClick="Add_Click();"然后也添加javascript函数。
  • 对于 javascript 使用 OnClientClick,但他不应该为此需要它。

标签: asp.net vb.net


【解决方案1】:

请删除 OnClick="Add_Click"。这将解决您的问题。

您需要考虑两件事:-

  1. 当您添加 OnClick 时,这意味着您要在 Java Script 中处理点击。

  2. 要在服务器端处理点击,您需要在代码中提供一个带有 Handles 子句的方法。

第一种方法覆盖第二种方法。

【讨论】:

  • 不幸的是,这也没有影响活动。不过谢谢
  • 我刚刚创建了一个与您的代码相同的项目,它按预期工作。你能把你的aspx贴在这里吗?
  • 谢谢,我设法让它与下面的答案一起使用。它发回原始页面而不是下一页,但该属性使其正常工作。
【解决方案2】:

我可以通过在我的按钮中提供此属性来使其工作:

PostBackUrl="~/TimeReportingAdd.aspx"

它正在回发到初始页面 TimeReporting.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多