0

Telerik 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 がすべてのコントロールと共に追加されますが、今回は最初の RadPanelItem から RadTexBox コントロールが消えます。

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

アイテムを動的に追加するときに何か問題がありますか?

ありがとう !

4

1 に答える 1

1

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

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

于 2009-06-16T13:45:56.450 に答える