2010-07-15 57 views
1

我想在點擊後禁用按鈕,同時觸發回發事件生成報告。我的第一套代碼不起作用,因爲onclientclick調用一個包含這些行的javascript函數將javascript代碼移至設計視圖不起作用。只有代碼隱藏Attributes.Add(「onclick」的作品。困惑

document.getElementById('btnGenerateReport')。這是第一組未執行的代碼。禁用= TRUE; GetPostBackEventReference(btnGenerateReport, '');

因爲它沒有回發

我試圖在Page_Load中的代碼跟在後面

btnGenerateReport.Attributes.Add("onclick", "this.disabled=true;" + ClientScript.GetPostBackEventReference(btnGenerateReport, "")) 

運作良好。但我試圖複製得到了生成並直接在設計視圖粘貼的JavaScript

onclick="this.disabled=true;__doPostBack('btnDownloadClientsWithConviction','');" 

它不是從客戶端工作後獨自我禁用後面的代碼attributes.add 但是當我查看視圖源2頁是相同的

爲什麼我無法將代碼從代碼隱藏移動到設計視圖?

回答

1

因爲Button.ClientId是使用NamingContainer生成的。

試試這個:

document.getElementById('<%= btnGenerateReport.ClientId %>').disabled=true; 
GetPostBackEventReference('<%= btnGenerateReport.ClientId %>',''); 
+0

以及裏克·肖特,我檢查的clientid編寫代碼和生成的客戶端ID之前是相同的設計視圖中的ID。只有在某些情況下,asp.net纔會在設計視圖中創建與id不同的不同客戶端ID。例如:用戶控件中的控件。 – Enggr 2010-07-17 12:27:09

+0

取決於您是否使用run =「server」或.NET 4 ClientId選項。 – 2010-07-22 19:55:27