2013-12-13 62 views
1

我有它給我這個錯誤的OnClientClick事件此關閉按鈕。它在一些頁面中工作,並且不起作用。我無法弄清楚爲什麼。代碼頁中的句柄後面有一個藍色下劃線。錯誤的OnClientClick事件 - 處理條款要求WITHEVENTS

<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 

回答

2

OnClientClick是在客戶端單擊按鈕時應執行的JavaScript代碼。但是您正在處理Button.Click-這是一個服務器事件。

因此該按鈕需要使用,如果你在設計中添加一個按鈕,自動完成WithEvents(在VB.NET)創建。

所以一定有某個地方在代碼隱藏類(或aspx.designer.vb文件)這一點:

Dim WithEvents btnClose As New Button 

您還可以添加事件處理程序通過Handles ASPX頁面上,而不是:

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

注意btnClose_ClientClick是JS-代碼,其可以是JS-功能。順便說一句,如果你想阻止客戶端返回false回傳從OnClientClick

OnClientClick="return btnClose_ClientClick();" 

(假設btnClose_ClientClick回報bool

+0

OMG感謝蒂姆,它的工作。我在代碼頁中添加Dim語句,並使用onclick事件和魔法工作。謝謝一堆。 – Nita