2010-04-21 32 views
4

我遇到了什麼似乎是與2個獨立項目中的asp.net UpdatePanels惱人的錯誤。如果您有某種啓用了自動回覆功能的控件可能會導致更新面板中的所有控件都設置爲可見= false,從而導致一個空的更新面板。ASP.net UpdatePanel控件中可能存在的錯誤?

當您將自動回送控件更改回位置以重新啓用更新面板中的所有控件時,它只是不會回撥到服務器,並且更新面板不會更新。

如果您執行的任何操作都會在同一頁面上回撥,則更新面板內容會奇蹟般地出現。這就好像asp.net已經決定更新面板是空的,所以沒有任何意義可以回調,即使回叫會填充updatepanel的內容。

圍繞此的唯一方法是將display:none的樣式添加到控件而不是設置visible=false屬性。
然後它工作正常。

有其他人遇到過這個問題嗎?這是一個錯誤,因爲我懷疑,或者它可能是我做錯了嗎?我現在還沒有時間發佈示例代碼,因爲我使用的代碼太籠統了,如果人們認爲它會幫助我創建一個簡單的示例並在獲得時間後發佈它。

+2

請張貼您的代碼。 – andrewWinn 2010-04-21 11:43:04

+0

AutoPostback控件在哪裏?在UpdatePanel中?你什麼時候設置IsAutoPostBack = true? – 2010-04-21 12:46:01

+0

AutoPostback位於更新面板之外。 AutoPostBack = true在標記中設置。 – 2010-04-21 14:54:39

回答

1

將觸發異步回覆的控件置於更新面板中,修復了此問題。我肯定地說這是一個錯誤,因爲唯一的區別在於,當控件位於updatepanel內部時,它不起作用,而當它位於更新面板之外時則不起作用。

1

的AutoPostBack控制= 「真」必須設置爲在UpdatePanel的AsyncPostBackTrigger

+1

是的,我知道這一點,它是。問題是它並不總是起火。問題是,如果更改AsyncPostBackTrigger的控件,並且AsyncPostBack的結果是將UpdatePanel的內容呈現爲不可見。當您將控件更改回原始狀態時,它不會觸發AsyncPostBack。 AsyncPostBackTrigger和AutoPostBack屬性是在asp.net標記中設置的,因此是固定的,這些屬性不可能因爲AsyncPostBack而改變。 – 2010-04-21 14:53:31

+0

那麼如何在更新面板中添加「asp:HiddenField」? – DavRob60 2010-04-21 17:59:01

0

我有同樣的問題。 我有一個更新面板和下拉列表enable = false。當用戶在UpdatePanel中執行AsyncPostBack時,在UpdatePanel之外的下拉列表變爲enable = true,而不執行任何代碼。當我在UpdatePanel中添加這些下拉列表時 - 所有的作品。我不知道爲什麼。

相關問題