Qualcosa su di me

Mi chiamo Andrea Moro, sono un appassionato di informatica da quando avevo 8 anni e da quando mio padre mi regalò il C64.

Qualche anno più tardi, il mio primo pc e nel 1994 la prima esperienza con Internet, di cui mi sono subito innamorato e con cui oggi mando avanti la mia attività di Web Designing e posizionamento nei motori di ricerca.

View Andrea Moro's profile on LinkedIn

Calendar

<<  ottobre 2008  >>
lumamegivesado
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

View posts in large calendar


RSS

Ogni controllo nella pagina è identificabile tramite il suo ID, ovvero si può far riferimento nella parte di code behind al controllo messo nel designer. Tuttavia questa affermazione non è sempre vera, in particolar modo se il controllo è annifato dentro ad altri controlli che fungono da contenitore (naming container) e che, per tale caratteristica, a run-time devono generare diverse istanze del controllo stesso e quindi "rinominare" il controllo.
In questo caso per rinominare si intende assegnare un ID univoco costituito dall'ID del Naming Container più l'ID del controllo stesso più un altro valore randomico per rendere l'ID nuovamente univoco.
Si pone però a questo punto il problema di come accedere allo specifico controllo, tanto a design-time che run-time.

La soluzione, in entrambe i casi, consiste nel metodo FindControl messo a dispozione dall'oggetto Control, con il quale data una stringa, si può recuperare l'istanza di uno specifico controllo all'interno del Naming Container del quale si è richiamato il metodo FindControl.

Es. Si supponga di avere un textbox con ID text1 dentro il controllo Page (Page anche è un naming container), si dovrà fare Page.FindControl("text1");

Succede però che in casi via siano diversi annidamenti, raggiungere un controllo diventi particolarmente difficile, perchè si dovrebbe chiamare una successione di NamingContainer.FindControl profonda tanto quanto il livello di annidamento del controllo che si vuole intercettare.
Un sistema alternativo è invece quello di specificare nella stringa da dare in pasto al metodo FindControl, il path completo del controllo nella medesima sintassi, separando ogni controllo con il simbolo $.

Es. TextBox tb = this.FindControl("form1$formVw$txtName") as TextBox;

Referenze: Web Forms Control Identification, Finding ASP.NET Child Controls....the Simple Way


Vota questo post per primo

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Aggiungi commento


(Visualizza la tua icona Gravatar)  

  Country flag


  • Commento
  • Anteprima
Loading



Advanced Technology

Abruzzo SEO specialist, .Net programming and computer stuff