2009-06-16 73 views
0

我有一個關於Telerik RadPanelBar控件的問題。RadPanelBar控件在項目動態添加後消失

例如,我們已經有了形式RadPanelBar控制:

 <telerik:RadPanelBar ID="testPanelBar" runat="server"> 
     </telerik:RadPanelBar> 

並在運行時增加了一個新的項目,以這個RadPanelBar按鈕:

 RadPanelItem newParentItem = new RadPanelItem(); 
     RadPanelItem newChildItem = new RadPanelItem(); 
     newChildItem.Controls.Add(new RadTextBox()); 
     newChildItem.Text = "wazzap"; 
     newParentItem.Items.Add(newChildItem); 
     languagesPanelBar.Items.Add(newParentItem); 

當我點擊按鈕,新RadPanelItem添加了所有子控件(本例中它是RadTextBox的子項)

當第二次點擊按鈕時,第二次RadPanelItem被添加所有控件,但是這次是 RadTexBox控件從第一個RadPanelItem消失。

與第三次點擊按鈕時相同,添加了所有控件的新項目,但RadTextBox將從第一項和第二項中消失。

我在動態添加項目時做錯了什麼?

謝謝!

回答

1

發生這種情況是因爲動態創建的控件添加到其他動態創建的控件在回發後會丟失。您需要在每次加載頁面時重新創建它們。據我所知,這個問題沒有解決方法。您也可以使用Page類輕鬆地重現它,在page_load上嘗試Controls.Add(new TextBox());然後在回發後,相同的代碼不會生成新的(第二個)文本框,但會重新創建後面的文本框。

所有PanelBar項目(甚至是動態創建的項目)都在客戶端上序列化,並在服務器上重新創建回發後。這就是他們不會迷失的原因。但是,同樣的事情不適用於RadPanelItem對象的子控件。

+0

嗨。感謝您的回覆 !還有一個小問題:) 孩子RadPanelItem呢? 它是動態創建的,並且項目本身在回發後不會丟失。 – shkipper 2009-06-16 14:14:48