2009-07-20 70 views
2

我有了一個圖像按鈕,一個UpdatePanel:的ImageButton中的UpdatePanel導致完全回發的Firefox

<asp:ImageButton ID="btnChangeMedium" OnClick="Change_Click" runat="server" /> 

頁面加載後,基於某些邏輯,我在代碼中設置的onclick屬性後面。

btnChangeMedium.Attributes.Add("onclick", "ChangeMedium();"); 

在IE中工作。在FF中,圖像按鈕會導致回發!通過反覆試驗和通過搜索網絡,我發現罪魁禍首是點擊。一個博客文章建議,如果OnClientClick這個設置,然後回傳不應該發生,所以我改變了的ImageButton到:

<asp:ImageButton ID="btnChangeMedium" OnClick="Change_Click" runat="server" 
OnClientClick="#"/> 

我能得到它沒有做對的ImageButton點擊回傳,可惜,它沒有完全解決我的問題。現在呈現的HTML是:

<input type="image" id="ctl00_WorkSpaceContent_ctlParent_btnChangeMedium" 
src="../../images/sec.gif" onclick="#;ChangeMedium();"/> 

因此,從不調用ChangeMedium()函數。任何解決此問題的方法?

任何幫助,非常感謝

謝謝!

+0

你有你的UpdatePanel定義的觸發器? – 2009-09-18 19:14:05

回答

1

試試這個:

<asp:ImageButton ID="btnChangeMedium" OnClick="Change_Click" runat="server" 
OnClientClick="javascript:void(0);ChangeMedium();"/> 
1

你應該做的是去除的OnClientClick,並把下面:

btnChangeMedium.Attributes.Add("onclick", "ChangeMedium();return false;"); 
+0

如果我在FF中刪除了OnClientClick,即使圖像按鈕位於UpdatePanel中(這是我的原始問題),但仍有完整的回發 – Nick 2009-07-20 21:38:59

+0

我必須查看我自己的代碼。完全刪除Attributes.Add。只需放入OnclientClick =「ChangeMedium();返回false;」。 – 2009-07-20 21:42:58

+0

在OnClick上分配的JS僅在服務器端確定。 ChangeMedium()就是一個例子。它可以是基於業務邏輯確定的任何JS代碼,但不幸的是,我無法將其設置爲HTML: – Nick 2009-07-20 21:48:51

相關問題