¿Cómo generar dinámicamente una combinación de controles de usuario ASP.NET?

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

  •  01-07-2019
  •  | 
  •  

Pregunta

Tengo varios controles de usuario, digamos A, B, C y D.En función de algunos datos aleatorios, necesito generar una combinación de estos.Por ej.si la entrada es 2a3d1a2c Necesito mostrar dos de las A, 3 D después de eso, una A nuevamente, etc.

También necesitaré estabilizar los ID de cliente para que funcionen correctamente.Debido a que cada uno de estos controles usa su propio ClientID propiedad para reunir los insumos sobre sí mismos.Por ej.El control de usuario A genera internamente una entrada denominada this.ClientID + "$input1", y recopila su información de una solicitud como Request[this.ClientID + "$input1"].Como puede haber más de una A, cada A debe tener el mismo (unique) ClientID después de la devolución para obtener entradas correctas de la solicitud.

¿Fue útil?

Solución

Para agregar controles dinámicamente, puede usar un panel como marcador de posición, digamos

<asp:Panel ID="ControlPlaceholder" runat="server" />

Luego, en el lado del servidor, puedes agregarle objetos de esta manera:

int controlCount = 0;

...

TextBox newTextBox = TextBox();
newTextBox.ID = "ctl_" + controlCount++;
ControlPlaceholder.Controls.Add(newTextBox);

Si le agrega los controles durante su evento Page_Load y utiliza un método consistente para generar los ID de los controles (como el recuento simple anterior), cualquier estado de vista o enlace de evento se volverá a vincular al objeto correcto en una devolución de datos.

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