Ok, soy un desarrollador web experimentado, pero a veces ASP.Net me está engañando. Tengo una página maestra en asp.net. Luego tengo una página basada en esa página maestra (home.aspx). Ahora en home.aspx.cs quiero acceder a los controles asp: content para agregar controles programáticamente.Acceso a asp: contenido del código detrás de
Aspx se ve así:
<asp:Content ID="leftCol" ContentPlaceHolderID="cphLeftCol" Runat="Server">
<asp:PlaceHolder ID="phLeftCol" runat="server">
</asp:PlaceHolder>
</asp:Content>
yo esperaría que puedo hacer referencia a "LeftCol" de mi código detrás. Pero es desconocido allí. Para probar agregué mi propio marcador de posición "phLeftCol". Puedo hacer referencia a eso sin problemas.
¿Hay algo que no vea?
lo tanto, mi solución es mejor práctica. Qué lástima. – newtogit
Existen otros controles de contenedor que pueden ser más adecuados para su situación que un control de marcador de posición (realmente tendría que saber más sobre lo que está haciendo), pero el control de contenido no es una opción. –
Piense en cada ContentPlaceHolder (en la página maestra) y en cada objeto coincidente de contenido (página de contenido) simplemente como puntos finales opuestos de un enlace que indica dónde y qué debe incrustar el sistema de representación de contenido/maestro en la página maestra. Cada ContentPlaceHolder en la página maestra simplemente indica dónde insertar las cosas definidas en cada objeto de contenido correspondiente en la página de contenido. Dado que estos objetos sirven solo como un enlace sobre dónde/qué incrustar, son como metaobjetos para el sistema de representación Maestro/Contenido, por lo que nunca forman parte de la jerarquía de control. – Triynko