2009-06-16 6 views
0

Ich habe eine Frage zu Telerik RadPanelBar-Steuerelement.RadPanelBar-Steuerelemente verschwinden nach dynamisch hinzugefügten Elementen

Zum Beispiel haben wir eine RadPanelBar Kontrolle über Form bekommen:

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

und eine Schaltfläche, die zu diesem RadPanelBar zur Laufzeit ein neues Element ergänzt:

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

wenn i-Taste klicken, neu RadPanelItem wird mit allen untergeordneten Steuerelementen hinzugefügt (in diesem Fall ist es RadTextBox im untergeordneten Element).
Wenn die Schaltfläche zum zweiten Mal geklickt wird, wird das zweite RadPanelItem mit allen Steuerelementen hinzugefügt, diesmal jedoch RadTexBox-Steuerelement verschwand aus dem ersten RadPanelItem.

Und gleich wenn Knopf zum dritten Mal geklickt wird, neues Element mit allen Steuerelementen hinzugefügt, aber RadTextBox wird vom ersten und zweiten Element verschwinden.

Mache ich etwas falsch beim dynamischen Hinzufügen von Elementen?

Vielen Dank!

Antwort

1

Dies passiert, weil dynamisch erstellte Steuerelemente, die anderen dynamisch erstellten Steuerelementen hinzugefügt wurden, nach einem Postback verloren gehen. Sie müssen sie bei jedem Laden der Seite neu erstellen. Soweit ich weiß, gibt es keine Problemumgehung für dieses Problem. Sie können es auch leicht mit der Page-Klasse reproduzieren, versuchen Sie Controls.Add (new TextBox()) auf page_load; Nach einem Postback wird der gleiche Code kein neues (zweites) Textfeld erzeugen, sondern das spätere neu erstellen.

Alle PanelBar-Elemente (auch dynamisch erstellte) werden auf dem Client serialisiert und nach einem Postback auf dem Server neu erstellt. Und deshalb sind sie nicht verloren. Das gleiche gilt jedoch nicht für die untergeordneten Steuerelemente des RadPanelItem-Objekts.

+0

Hallo. Danke für die Antwort ! habe noch eine kleine Frage :) was ist mit Kind RadPanelItem? Es wird dynamisch erstellt, und das Element selbst ist nach dem Postback nicht verloren. – shkipper

Verwandte Themen