Элементы управления RadPanelBar исчезают после добавления элементов динамически - PullRequest
0 голосов
/ 16 июня 2009

У меня вопрос по управлению 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 в дочернем элементе)

при повторном нажатии кнопки добавляется второй RadPanelItem со всеми элементами управления, но на этот раз Элемент управления RadTexBox исчез из первого RadPanelItem.

И то же самое, когда кнопка нажимается в третий раз, новый элемент добавляется со всеми элементами управления, но RadTextBox исчезнет с 1-го и 2-го элементов.

Я что-то не так делаю при динамическом добавлении предметов?

Спасибо!

1 Ответ

1 голос
/ 16 июня 2009

Это происходит потому, что динамически созданные элементы управления, добавленные к другим динамически создаваемым элементам управления, теряются после обратной передачи. Вам нужно воссоздавать их при каждой загрузке страницы. Насколько я знаю, нет решения этой проблемы. Вы также можете легко воспроизвести его с помощью класса Page, в page_load попробуйте Controls.Add (new TextBox ()); Затем после обратной передачи тот же код не будет генерировать новое (второе) текстовое поле, но будет воссоздавать позднее.

Все элементы PanelBar (даже динамически созданные) сериализуются на клиенте и после постбэка воссоздаются на сервере. И именно поэтому они не потеряны. Однако то же самое не относится к дочерним элементам управления объекта RadPanelItem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...