#857 - Un metodo FindControl ricorsivo per pagine ASP.NET

In alcuni casi è necessario recuperare un controllo annidato all'interno di una serie di altri, senza poter sapere a prori quale sia esattamente il suo controllo genitore. In casi come questo è necessario scrivere una funzione che faccia la scansione, in maniera ricorsiva, dell'intero albero dei controlli, così da poter essere utilizzato, ad esempio, sia all'interno di pagine che siano basate su Master Page, sia in altri contesti:

public Control FindControlRecursive(Control owner, string controlID)
{
  Control myControl = null;

  // faccio un ciclo su tutti i controlli

  if (owner.Controls.Count > 0)
  {
    foreach (Control c in owner.Controls)
    {
      myControl = FindControlRecursive(c, controlID);

      if (myControl != null)
        return myControl;
    }
  }

  // ho trovato il controllo, lo restituisco

  if (controlID.Equals(owner.ID))
    return owner;

  return null;
}

// recupero un controllo Label chiamato Title

Label footer = FindControlRecursive(this, "Title") as Label;


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

addis.roberto scrive:
#857 - Un metodo FindControl ricorsivo per pagine ASP.NET

ottimo !! mi sono preso la briga di convertirlo in vb se può essere utile Public Function FindControlRecursive(ByVal owner As Control, ByVal controlID...
mercoledì 7 febbraio 2007

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC