【问题标题】:Error onclientclick event - Handles clause requires WithEvents错误 onclientclick 事件 - Handles 子句需要 WithEvents
【发布时间】:2013-12-13 21:32:32
【问题描述】:

我有这个带有 onclientclick 事件的关闭按钮,这给了我这个错误。它适用于某些页面,但不适用于其他页面。我不知道为什么。代码页中的 Handles 后面有一个蓝色下划线。

<asp:Button ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit" CssClass="btnclass" />
<asp:Button ID="btnClose" runat="server" Text="Close" CssClass="btnclass" OnClientClick="btnClose_Click()" />

Protected Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
    Me.Dispose()
    Response.Redirect("~/SearchForm.aspx", False)
End Sub

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    OnClientClick 是当您单击客户端按钮时应执行的 javascript 代码。但是您正在处理 Button.Click-event 这是一个服务器端事件。

    因此,需要使用WithEvents(在 VB.NET 中)创建此按钮,如果您在设计器中添加按钮,则会自动完成此操作。

    所以在代码隐藏类(或aspx.designer.vb 文件)中一定有这个:

    Dim WithEvents btnClose As New Button
    

    您也可以在 aspx 页面上添加事件处理程序,而不是通过Handles

    <asp:Button ID="btnClose" runat="server" Text="Close" CssClass="btnclass" 
        OnClick="btnClose_Click" 
        OnClientClick="btnClose_ClientClick()" />
    

    请注意,btnClose_ClientClick 是 js-code,可以是 js-function。顺便说一句,如果你想防止来自客户端的回发,请从OnClientClick返回false

    OnClientClick="return btnClose_ClientClick();" 
    

    (假设btnClose_ClientClick 返回一个bool

    【讨论】:

    • 天哪,谢谢蒂姆,它成功了。我在代码页中添加了 Dim 语句,并且只使用了 onclick 事件并且魔法起作用了。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2011-01-13
    • 2018-10-17
    • 2023-03-20
    相关资源
    最近更新 更多