Pregunta

Estoy haciendo una aplicación asp.net con una página. En esta página, tengo un control de usuario definido. Este control de usuario tiene un menú (tres botones) y 3 controles de usuario definidos también. Dependiendo del botón en el que se haya hecho clic, uno de los tres controles de usuario cambiará a verdadero o falso visible.

En estos tres controles de usuario tengo un botón y un mensaje, y quiero mostrar el mensaje "NO es devolución de datos" cuando se hace clic en el botón del menú, y cuando se hace clic en el botón de control del usuario, el mensaje será "¡SÍ, es devolución de datos!".

La pregunta es que usando la propiedad '' IsPostBack '' del control de usuario o de la página, el mensaje nunca será "NO es devolución de datos" debido al botón en el que se hizo clic en el menú para mostrar el control de usuario anidado.

Esta es la estructura de la página:

page
  parent usercontrol
    menu
    nested usercontrol 1
      message
      button
    nested usercontrol 2
    nested usercontrol 3

Sé que se puede hacer usando ViewState pero, ¿hay una manera de simular la propiedad IsPostBack o saber cuándo es la verdadera devolución de datos de control de usuario?

Gracias.

¿Fue útil?

Solución

Tengo la solución para este problema. Cuando un elemento se dispara, se envía un evento al servidor en la colección Request.Form, por lo que creé una propiedad en controles de usuario anidados que verifica si hay un control secundario (definido en el control de usuario) en la colección Request.Form:

public bool IsUserControlPostBack
    {
        get 
        { 
            foreach (Control c in Controls)
                foreach(string key in Page.Request.Form.AllKeys)
                    if( c.ClientID == key.Replace('

Este código puede ser una propiedad del control de usuario o, si se llama muchas veces, una variable que se establece en el evento OnInit del control de usuario.

,'_')) return true; return false; } }

Este código puede ser una propiedad del control de usuario o, si se llama muchas veces, una variable que se establece en el evento OnInit del control de usuario.

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