ASP.NET - Urge!! Control de usuario dinamico

   
Vista:

Urge!! Control de usuario dinamico

Publicado por Laurea (46 intervenciones) el 22/10/2007 18:10:26
Hola a todos.
En primer lugar, muchas gracias por leerme.
Os escribo al foro para ver si alguien me puede echar un cable.
Estoy con una aplicación web con vb 2005. Tengo un control de usuario que consiste en 2 combos.
En tiempo de ejecución cargo el control de usuario (le pongo las propiedades datasource, datatextfield, datavaluefield y databind - ya que se cogen de una base de datos), lo agrego al formulario e inicializo el primer combo. Hasta aquí todo funciona bien.
El funcionamiento del control es que una vez se seleccione un elemento del primer combo, cargar el segundo combo (también se carga a partir de una instrucción sql almacenada en una tabla, pero teniendo en cuenta el valor seleccionado del primer combo, por ejemplo: Grupo de Productos y Producto).
Tengo puesto en el control de usuario, en el primer combo autopostback=true.
En el formulario que llama al control de usuario y en el que se muestra el control, en el form load tiene un if isnot postback then...
Pues cuando ejecuto el control, se carga perfectamente, pero cuando pincho en el primer combo, se ejecuta el autopostback, el bloque de "if isnot postback" lo hace bien y no entra.
Cuando muestro la pagina, los controles de usuario han desaparecido.
¿Alguién sabe por qué puede pasarme?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Urge!! Control de usuario dinamico

Publicado por Javier Santamaria (312 intervenciones) el 23/10/2007 15:46:46
Hola,
Los controles de usuario se crean en tiempo de compilacion o en tiempo de ejecucion?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urge!! Control de usuario dinamico

Publicado por laurea (46 intervenciones) el 23/10/2007 15:58:36
Hola Javier.
Los controles los creo en tiempo de ejecución.
La sintaxis que uso es la siguiente:

protected Shared uscCombo As New UserControls_ComboConsulta
'Lo he declarado con protected shared por si acaso me daba el problema aqui (antes era dim)

if not ispostback then
uscCombo = Page.LoadControl("UserControls/usccomboconsulta.ascx")
'La linea siguiente es una función que pone el datasource, datafieldtext,datavaluetext y hace databind al control que contiene 2 combos
uscCombo.InicializarComponente(Ctrl.uiCombo)
cell.Controls.Add(uscCombo) 'agrego el control a la celda de una tabla que también se crea dinámicamente.
end if

La primera vez que cargo la pagina aparece el control bien y con los datos.
En el control, uno de los combos tiene autopostback=true, ya que, al pinchar en este combo, el segundo combo debe rellenarse con unos valores en funcion del valor seleccionado del primer combo.
Cuando pincho en el combo, vuelve al formload, no se ejecuta ya que está dentro del if not ispostback, pero cuando acaba el formlload la pagina aparece el blanco (la página sólo tiene el control de usuario cargado dinámicamente).

No se que puede ser, estoy loca dandole vueltas.
Agradecería cualquier idea por absurda que pareciera.
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urge!! Control de usuario dinamico

Publicado por laurea (46 intervenciones) el 23/10/2007 18:06:31
Hola chicos de nuevo.
Me he creado otro webform de prueba y he arrastrado el control creado por mí, y aquí si me funciona todo bien. Pienso que debe ser algo que creo mal cuando hago el Load del control. ¿Alguien tiene alguna idea sobre qué me puede faltar, qué puedo tener mal?...
Por favor, cualquier opinión o idea me sería de gran ayuda.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urge!! Control de usuario dinamico

Publicado por Javier Santamaria (312 intervenciones) el 24/10/2007 10:51:25
Hola,

Si los controles son creados en tiempo de ejecucion tienes que guardar el estado de los mismos en el viewstate para poder reporducirlos luego al cargarse la pagina de nuevo.

Busca informacion sobre eso a ver si te ayuda.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urge!! Control de usuario dinamico

Publicado por Laurea (46 intervenciones) el 24/10/2007 14:12:46
Muchísimas gracias Javier, ya lo he solucionado.
He puesto:
EnableViewState="True"

Gracias.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urge!! Control de usuario dinamico

Publicado por Laurea (46 intervenciones) el 31/01/2008 12:39:43
Hola a todos!

Estoy deseperada, alguien me puede ayudar?

Tengo un control de usuario que se carga dinamicamente.
El control está formado por un combo y una lista.
En tiempo de ejecución me creo un tabla en el formulario y agrego el control a la tabla. Los sources del combo y de la tabla se llenan en tiempo de ejecución.
Cada vez que se ejecuta un autopostback tengo que repintar los controles, con lo cual tengo una llamada en el page load para cargar los controles

El funcionamiento sería seleccionar un elemento del combo y llenar la lista en función del valor del combo, de la cual se puede seleccionar más de un elemento.

Tengo el enabled view state a true y en el combo tengo autopostback=true.

Tengo una función que recorre la lista y pregunta si el elemnto está seleccionado, para guardarlo en la BD.
El problema está en que si selecciono un elemento de la lista sin cambiar el combo nada más cargarse, me devuelve que si tengo valores seleccionados, pero si cambio el combo y recargo la lista, me dice que no tengo valores seleccionados, pero si que veo en la lista los valores seleccionados.

He probado tanto con el autopostback a true de la lista como a false. El codigo del selected index change de la lista si se ejecuta, pero lo que se pierde es que items estan seleccionados, aunque en el formulario si aparecen marcados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar