2010-08-08 39 views
13

Tengo un botón de enlace asp.net dentro del control de repetidor asp.net que procesa múltiples botones de enlace. Quiero establecer el estilo de cada botón de enlace dinámicamente.Usando DataBinder.Eval() en el atributo de estilo de un control asp.net

Estoy intentando

style="color:#6D7B8D;font-size:<%# DataBinder.Eval(Container.DataItem, "Title")%>;" 

Pero estoy consiguiendo el error "La etiqueta servidor no está bien formada".

¿Alguna idea?

Respuesta

20

Mi entendimiento es que usando ser ver etiquetas para atributos requiere que la etiqueta de servidor se use para el valor de atributo entero. Intente cambiarlo a esto:

style='<%# "color:#6D7B8D;font-size:" + DataBinder.Eval(Container.DataItem, "Title") + ";" %>' 

Observe cómo se está construyendo todo el atributo de estilo en el código C# entre las etiquetas del servidor.

+0

En mi punto de vista de los apóstrofes son innecesarios: sólo tiene que escribir style = <% # "color: # 6D7B8D; Font- tamaño: "+ DataBinder.Eval (Container.DataItem," Title ") +"; " %> – Franziee

+0

Tu código funciona bien, gracias :-) –

4

escriben así:

style='color:#6D7B8D;font-size:<%# DataBinder.Eval(Container.DataItem, "Title")%>;' 

Con comillas simples en lugar de comillas dobles alrededor del estilo

0

Retire

<%# Databinder.Eval(Container.DataItem, "Title") %> 

Para:

Text='<%# Databinder.Eval(Container.DataItem, "Title") %>' 
0

También podemos utilizar el operador trenary dentro it-- a la costumbre del tamaño de la fuente

style='<%# "color:#6D7B8D;font-size:"Convert.ToInt32(DataBinder.Eval(Container.DataItem, "fontSize"))<5?"40":"30");" %>' 
Cuestiones relacionadas