Foros del Web » Programando para Internet » ASPX (.net) »

Llamar control desde ashx

Estas en el tema de Llamar control desde ashx en el foro de ASPX (.net) en Foros del Web. Buenas, tengo una serie de controles que estoy intentando llamar por ajax. Para ello tengo: Un botón que hace la llamada Un archivo ashx que ...
  #1 (permalink)  
Antiguo 06/04/2009, 06:03
 
Fecha de Ingreso: julio-2005
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Llamar control desde ashx

Buenas, tengo una serie de controles que estoy intentando llamar por ajax. Para ello tengo:
  • Un botón que hace la llamada
  • Un archivo ashx que llamo con ajax
  • y una capa donde escribo el resultado
Cuando le doy al boton el ashx mediante reflection instancia el control, le pasa parametros e invoca un metodo.
Todo eso lo hace bien.
Luego con un stringwriter me saco a un string el resultado de mi control.
El problema es que si tengo por ejemplo un asp:hiddenfield me dice que debe tener el runat=server correspondiente. Eso es mentira, lo tiene. Sin embargo si pongo un input type=hidden con runat=server lo hace perfectamente.
Mi problema es que no puedo cambiar al igual que cambio los asp:hiddenfield por input hidden, el resto de controles. Alguien sabe porque me da esto?
__________________
Moitas Gracias desde Galiza!!!
  #2 (permalink)  
Antiguo 06/04/2009, 09:55
 
Fecha de Ingreso: julio-2005
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Llamar control desde ashx

Parece ser que al hacer un render de la pagina .net hace una especie de validacion, que al intentar enviar por ajax no pasa. Mirando por ahi he conseguido hacer lo que queria. Explico mas o menos como lo he hecho:
Me he creado una clase que hereda de Page.
Me he creado en esta una propiedad:

Public Overrides Property EnableEventValidation() As Boolean que en el get devuelve false y en el set le asigno el valor a una variable

tambien me he creado el siguiente evento:

Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)

el cual no hace nada

Despues de esto, lo que hacia era instanciar controles y añadirlos a una pagina del tipo la clase que cree arriba. Y asi podia hacer esto:
Dim sb As New StringBuilder
Dim tw As New IO.StringWriter(sb)
Dim hw As New HtmlTextWriter(tw)
pagina.RenderControl(hw)

cadenaSalida = sb.ToString
__________________
Moitas Gracias desde Galiza!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:07.