Control, ID e FindControl...

Cristian Civera

di Cristian Civera, in .NET, lunedì 25 ottobre 2004 ore 21.22

Archiviato in: ,

C'è sempre da imparare e oggi ho finalmente approfondito (per risolvere un problema) come vengono gestiti gli ID dei controlli e come vengono cercati.

Elemento principale è l'interfaccia INamingContainer. Un controllo se implementa questa interfaccia diventa contenitore di tutti i controlli figli di qualsiasi livello, ad eccezione di ulteriori controlli che implementano tale interfaccia.

Quando utiliziamo il metodo FindControl viene creata una collezione che associa ID al controllo. Quindi se viene generata un eccezione per duplice ID è dovuto al fatto che entrambi i controlli hanno il medesimo container. Per avere un riferimento ad esso ogni controllo dispone di una proprietà NamingContainer. Implementano l'interfaccia le classi Page, UserControl, DataGrid, DataGridItem, DataListItem, RepeaterItem. Ecco perché non si presenta il problema di duplice ID per esempio con i TemplateColumn.

Per evitare di perdere tempo come ho fatto io :-D... se cercate un ID di un controllo che si trova in un container sottostante, non lo troverete mai, ma è possibile cercarlo separando con i due punti (:) i vari contenitori. Esempio, se abbiamo un UserControl di ID "uc" e un Label al suo interno id ID "label" e vogliamo cercarlo nella pagina dovremmo scrivere:

Control c = FindControl("uc:label")

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

Nella stessa categoria
I più letti del mese
TagCloud
.NET Framework, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Framework 4.0, ADO.NET Entity Framework, AJAX, Architettura, ASP, ASP.NET, ASP.NET 2.0, ASP.NET 2.0 per tutti, ASP.NET 4.0, ASPItalia.com, Custom Control, Databinding, Datagrid, HttpRuntime, IIS, Javascript, LINQ, LINQ to Entities, LINQ to SQL, Media Center, Microsoft Expression, Object Oriented Programming, Off Topic, PDC 2008, Silverlight, Silverlight - animazioni, Silverlight 2.0, Silverlight 3.0, User Control, Visual Studio, Windows 7, Windows CardSpace, Windows Client, Windows Communication Foundation, Windows Live Services, Windows Presentation Foundation, Windows Server, Windows Vista, Windows Workflow Foundation, XAML, XBox 360, XHTML, XML, XPS, XSLT
BLOG INFO
  • 199 post, 86 commenti, 42 trackback
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom
IN EVIDENZA