2010-08-08 13 views
13

Mam asp.net linkbutton wewnątrz kontrolera repe.net asp.net, który renderuje wiele przycisków łącza. Chcę dynamicznie ustawić styl każdego przycisku łączenia.Korzystanie z DataBinder.Eval() w stylu atrybut kontrolka asp.net

Próbuję

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

ale jestem coraz „Znacznik serwer nie jest dobrze uformowane” błąd.

Wszelkie pomysły?

Odpowiedz

20

Moje rozumienie jest że używając ser Zmienne ver dla atrybutów wymagają, aby znacznik serwera był używany dla wartości atrybutu cała. Spróbuj zmienić to na:

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

Zobacz, jak cały atrybut stylu jest tworzony w kodzie C# między znacznikami serwera.

+0

Z mojego punktu widzenia apostrofy są zbędne: wystarczy wpisać style = <% # „color: # 6D7B8D; fontu size: "+ DataBinder.Eval (Container.DataItem," Title ") +"; " %> – Franziee

+0

Twój kod działa perfet do mnie, dzięki :-) –

4

napisać to tak:

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

Z apostrofami zamiast cudzysłowie stylu

0

Usuń

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

Do:

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

Możemy również użyć operatora trenary ciągu it-- zwyczaju rozmiar czcionki

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