我有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
答案 0 :(得分:2)
OnClientClick
是单击客户端按钮时应执行的javascript代码。但是您正在处理Button.Click
- 事件,这是一个服务器端事件。
因此,需要使用WithEvents
(在VB.NET中)创建此按钮,如果在设计器中添加按钮,则会自动完成。
因此,必须在codebehind类(或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。顺便说一下,如果你想阻止来自false
的客户端返回OnClientClick
的回发:
OnClientClick="return btnClose_ClientClick();"
(假设btnClose_ClientClick
返回bool
)