2009-06-16 9 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です)

ボタンを2回クリックすると、2番目のRadPanelItemがすべてのコントロールで追加されますが、今度は RadTexBoxコントロールが最初のRadPanelItemから消えました。

3回目にボタンをクリックしたときと同じように、すべてのコントロールで新しいアイテムが追加されましたが、RadTextBoxは1番目と2番目のアイテムから消えてしまいます。

動的に項目を追加するときに間違っていますか?

ありがとうございました!

答えて

1

これは、動的に作成された他のコントロールに追加された動的に作成されたコントロールが、ポストバック後に失われるためです。すべてのページの読み込み時に再作成する必要があります。私が知る限り、この問題の回避策はありません。 Pageクラスでも簡単に再現できます。page_load try Controls.Add(新しいTextBox());ポストバックの後、同じコードは新しい(2番目の)テキストボックスを生成しませんが、後で再作成します。

すべてのPanelBar項目(動的に作成されたものも含む)は、クライアント上でシリアル化され、ポストバックがサーバー上で再作成された後にシリアル化されます。そして、これが彼らが失われていない理由です。ただし、同じことはRadPanelItemオブジェクトの子コントロールには適用されません。

+0

こんにちは。返信ありがとう!もう少し小さな質問があります:) 子RadPanelItemはどうですか? 動的に作成され、アイテム自体はポストバック後も失われません。 – shkipper

関連する問題