2010-02-25 27 views
0

如何設置默認設置,以便如果我沒有明確爲asp:LinkBut​​ton標記設置OnClick(即asp.net OnClick屬性) ,它不會呈現一個onclick(HTML屬性爲JavaScript)屬性客戶端?默認情況下,asp.net爲LinkBut​​ton添加一個onclick ='doPostBack ....'。如果沒有明確定義OnClick事件,則停止設置onclick事件for asp:LinkBut​​ton

使用案例:

頁面上有一個LinkBut​​ton標籤。對於這個頁面,如果用戶有一個朋友,我只想運行客戶端代碼,如果按鈕被點擊,並且不想以任何理由發回帖子。如果用戶有多個朋友,我希望點擊觸發回傳。

解決方案,包括以下是沒有幫助的:

  1. 使用任何asp.net Ajaxtoolkit
  2. 動態切換控制類型(即,如果朋友== 1所使用的asp:超鏈接) -I希望避免這種情況,因爲它不可擴展。可能有很多情況下,我想一個asp:鏈接標籤做回發或不辦取決於用戶上下文或用戶回發的屬性

  3. 使用的OnClientClick(我使用jQuery想避免這種情況)

解決方案,這將是有益的,如果可能的:

如果我能在運行時看到服務器端onclick事件是否明確設置一個asp:LinkBut​​ton的標籤,這將解決我的問題了。有任何想法嗎?

+0

好,我已經回答了我的問題明確設置。但我想添加一個更快更簡單的解決方案,使用按鈕的Enabled屬性來禁用它,而不必實際刪除或重新附加一個點擊事件。 – 2010-02-28 07:35:55

回答

0

怎麼樣,而不是動態切換的控件(如你所提到的是你不想要的解決方案),你可以總是使用asp:HyperLink並設置NavigateUrl屬性來重定向你的頁面回本身就帶有查詢字符串某種指示點擊的內容。

如果您不希望帖子發生,只需將NavigateUrl屬性留空即可。

當然,如果頁面的其他部分依賴於ViewState等,這將毫無價值。

+0

呃,我對這個解決方案並不是瘋狂的,而且asp:Hyperlink也有沒有實現IButton接口,因此它不能用作asp的默認按鈕:面板或者老式的方便的窗體敲擊回車鍵。不過謝謝。 – 2010-02-25 03:53:59