2011-03-10 22 views
22

No los he usado por un tiempo. Me preguntaba si es posible pasar valores o parámetros a un control de usuario desde la página aspx. Digamos que registra un control y luego lo usa usando algo como¿Se pueden pasar los valores o parámetros al control del usuario?

<uc1:SampleUserControl id="SampleUserControl1" runat="server"></uc1:SampleUserControl> 

sintaxis de estilo. ¿Puedes pasar parámetros allí?

+0

Descubrí que era necesario establecer la propiedad CodeBehind en el archivo .ascx en el archivo asociado ascx.cs/ascx.vb – andrewb

Respuesta

41

Sí:

<my:Control runat="server" MyPublicProperty="Value1" MyPublicProperty2="Value2"/> 

Cualquier propiedad pública se puede ajustar en el marcado, como se indica anteriormente. Puede obtener más avanzado que esto y soportar elementos secundarios, etc. también. See more information.

+3

Otro enfoque es agregar 'Control.MyPublicProperty =" Value1 ";' dentro de Page_Load en el archivo '.cs' – RaphaelDDL

+0

@RaphaelDDL Sí, pero en general se prefiere hacer lo que se pueda en el marcado. Si tiene que hacer algo complejo, entonces entra en el código subyacente. Si puede hacerlo fácilmente en el marcado, hágalo allí. Mejor aún: ¡cambie a MVC y deje de usar los controles del servidor! ;) –

3

Cree propiedades públicas en el código detrás del control de usuario y luego éstas podrían usarse como atributos al declarar el control del usuario en la página. Comprobar here

Cuestiones relacionadas