webmaster tools sesion iniciar herramientas google control asp.net user-controls

asp.net - tools - webmaster iniciar sesion



Agregar control de usuario múltiple del mismo tipo a una página (1)

Se han formulado preguntas similares a esta, pero ninguna parece abordar mi situación exacta. Esto es lo que estoy tratando de hacer.

Tengo un control de usuario que maneja la información del estudiante. es decir, nombre, apellido, dirección, etc.

Tengo una página web / formulario que tiene un botón. "Agregar Estudiante". Lo que quiero lograr es que se agregue un nuevo control StudentInfo al formulario web después de cada clic.

Mi código actual se ve algo como esto

Private Sub btnAddStudent_Click(sender as object, ByVal e As System.EventArgs) Dim lStudentInfo as Control LoadControl("~/StudentInfo.ascx") Me.placeholder1.controls.add(lStudentInfo) End Sub

Con este código solo se agrega un control de StudentInfo y al presionar nuevamente el botón "Agregar", no se agrega un nuevo control de StudentInfo debajo del primero y se borra el texto / datos ingresados ​​dentro del primer control.

Gracias de antemano por cualquier ayuda.


Lo que está sucediendo es que cada vez que haces una devolución de datos tu control anterior se perdió. Recuerde, cada postback utiliza una nueva instancia de su clase de página. La instancia en la que agregó el control a la última vez se destruyó tan pronto como finalizó la solicitud http, posiblemente antes de que el navegador incluso termine de cargar su DOM.

Si desea que exista un control para cada devolución de datos, debe agregarlo en cada devolución .

Además, si desea que ViewState funcione para el control, debe agregarlo antes del evento Load para la página . Esto significa In Init o PreInit.

Private Sub btnAddStudent_Click(sender as object, ByVal e As System.EventArgs) Me.placeholder1.controls.add(LoadControl("~/StudentInfo.ascx")) Session("NewStudentControls") += 1 End Sub Protected Sub Page_Init(sender as object, e as system.eventargs) For i As Integer = 1 To Session("NewStudentControls") Me.placeholder1.controls.add(LoadControl("~/StudentInfo.ascx")) Next End Sub