Los controles de RadPanelBar desaparecen después de agregar elementos dinámicamente

StackOverflow https://stackoverflow.com/questions/1001259

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo una pregunta sobre el control de Telerik RadPanelBar.

Por ejemplo, tenemos un control RadPanelBar en el formulario:

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

y un botón que agrega un nuevo elemento a este RadPanelBar en tiempo de ejecución:

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

cuando hago clic en el botón, se agrega el nuevo RadPanelItem con todos los controles secundarios (en este caso, es RadTextBox en el elemento secundario)

cuando se hace clic en el botón por segunda vez, se agrega el segundo RadPanelItem con todos los controles, pero esta vez El control de RadTexBox desapareció del primer RadPanelItem.

Y lo mismo cuando se hace clic en el botón por tercera vez, se agrega un nuevo elemento con todos los controles, pero RadTextBox desaparecerá de los elementos primero y segundo.

¿Estoy haciendo algo mal al agregar elementos dinámicamente?

¡Gracias!

¿Fue útil?

Solución

Esto sucede porque los controles creados dinámicamente agregados a otros controles creados dinámicamente se pierden después de una devolución. Es necesario volver a crearlos en cada carga de la página. Por lo que sé, no hay una solución para este problema. También puede reproducirlo fácilmente con la clase Page, en page_load, pruebe Controls.Add (new TextBox ()); Luego, después de una devolución, el mismo código no generará un nuevo (segundo) cuadro de texto, sino que recreará el siguiente.

Todos los elementos del PanelBar (incluso los creados dinámicamente) se serializan en el cliente y después de una devolución se recrean en el servidor. Y es por eso que no están perdidos. Sin embargo, lo mismo no se aplica a los controles secundarios del objeto RadPanelItem.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top