2012-07-03 35 views
1

我有一個DDL和按鈕,當點擊時創建一個動態表;所有的控件都在UpdatePanel之內。asp.net更新面板和發佈

在面板外面,我有兩個按鈕,應該隱藏直到創建表格。 如果按鈕開始爲visible = false,然後我將它們設置爲true,我從UpdatePanel點擊GO按鈕後,如果我添加了第二個UpdatePanel的,他們從來沒有變得可見

,並擺在那裏的2個按鍵就排序的工作原理,但點擊任一按鈕時,我總是會收到此錯誤:

Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerParserErrorException: 
The message received from the server could not be parsed. 

如何解決該問題?

回答

3

移動更新面板中的兩個按鈕。只有更新面板中的控件纔會在Ajax調用中更新。也就是說,如果您想在Ajax調用中通過代碼隱藏來更改任何控件的狀態,則必須將其包含在「更新」面板中。在Ajax調用中,您無法更改「更新」面板之外的控件。

UPDATE 您需要事件處理程序。使按鈕可見= true;並將其可見性設置爲隱藏,然後在完成通話時將其更改爲以下內容。

<script type="text/javascript" language="javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandle); 
     Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandle); 
     function beginRequestHandle(sender, Args) { 
     //Do something when call begins. 
     } 

function endRequestHandle(sender, Args) { 
document.getElementById("Button1").style.visibility = "visible"; 
document.getElementById("Button2").style.visibility = "visible"; 
} 
     </script> 
+0

,打破了EPPlus調用保存內容excel文件,所以我需要他們的後外代碼隱藏。有沒有辦法用JS創建它們,或者有什麼其他的方式來顯示/隱藏按鈕,而不更新頁面? – user1468537

+0

更新了我的回答看看。 –

+0

幾乎得到它。我得到這個,因爲它的一個asp:按鈕Microsoft JScript運行時錯誤:無法獲取屬性'style'的值:對象爲null或undefined如何更改上面的? – user1468537

0

是的,就像Ashwin告訴你必須讓按鈕從JS中可見,如果你需要更新面板外的按鈕。如果你在你的頁面有ScriptManager的,那麼你可以調用JS功能,使按鈕可見的代碼隱藏這樣

<script type="text/javascript" language="javascript"> 
    function showButtons(){ 
    document.getElementById("<%= Button1.ClientID %>").style.visibility = "visible"; 
    document.getElementById("<%= Button2.ClientID %>").style.visibility = "visible"; 
    } 
</script> 

如果按鈕然後服務器控件使用的代碼塊<獲得按鈕的客戶端ID %=%>。在創建動態表使用這種

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "showButtons", "showButtons();", true); 
+0

會爲標籤做同樣的工作嗎?我似乎無法讓那個人也這樣做。 – user1468537

+0

它顯示的是什麼問題? –

+0

這是迴文後添加文本,所以現在罰款。 – user1468537