Domanda

Sto facendo un'applicazione asp.net con una pagina. In questa pagina, ho definito un controllo utente. Questo controllo utente ha un menu (tre pulsanti) e anche 3 controlli utente definiti. A seconda del pulsante selezionato, uno dei tre controlli utente diventa visibile vero o falso.

In questi tre controlli utente ho un pulsante e un messaggio e voglio mostrare il messaggio " NON è postback " quando si fa clic sul pulsante del menu e quando si fa clic sul pulsante del controllo utente, il messaggio sarà " SÌ, è postback !!! " ;.

La domanda è che l'utilizzo della proprietà " IsPostBack " del controllo utente o della pagina in cui il messaggio non sarà mai " NON è postback " a causa del pulsante cliccato del menu per mostrare il controllo utente nidificato.

Questa è la struttura della pagina:

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

So che può essere fatto usando ViewState ma, c'è un modo per simulare la proprietà IsPostBack o sapere quando è il vero postback di usercontrol?

Grazie.

È stato utile?

Soluzione

Ho la soluzione per questo problema. Quando un elemento genera un evento viene inviato al server nella raccolta Request.Form, quindi ho creato una proprietà in controlli utente nidificati che verifica se esiste un controllo figlio (definito nel controllo utente stesso) nella raccolta Request.Form:

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

Questo codice può essere una proprietà di usercontrol o, se viene chiamato molte volte, una variabile che è impostata sull'evento OnInit di usercontrol.

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

Questo codice può essere una proprietà di usercontrol o, se viene chiamato molte volte, una variabile che è impostata sull'evento OnInit di usercontrol.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top