[ASP.NET] Obtener todos los controles de la pagina con Master Page

Hola, ya hace tiempo escribí un post de un caso particular, en el que recuperabamos los controles de una pagina y trabajamos con ellos fácilmente gracias a Linq [puedes ver la entrada aquí].

Un escenario similar del que no hable, pero se presenta mucho (y del que se ven muchas preguntas en los foros) es como obtener los controles de una pagina cuando esta se encuentra dentro de una Master Page, bueno pues hoy hablaremos de esto.

Lo primero que hay que tener en cuenta es que la pagina donde agregamos los controles queda ubicada dentro de un ContentPlaceHolder, es por esto, que cuando intentamos hacer algo como esto:

Page.Form.Controls.OfType();

la colección vendrá vacía porque los controles no se ubican como tal en esta, se ubican en el elemento contenedor definido en la master page, es algo similar como cuando se quiere localizar un elemento con JavaScript por el ID que le dejamos, a la hora de renderizarse este habrá cambiado.

Bueno, la solución para este problema…. simple, debemos obtener el ContentPlaceHolder y trabajar sobre este, así:

ContentPlaceHolder content = (ContentPlaceHolder)Master.FindControl("MainContent");
IEnumerable allDropDownList = content.Controls.OfType();

Espero les sea de utilidad.

Hasta el próximo post.

Anuncios
[ASP.NET] Obtener todos los controles de la pagina con Master Page

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s