Using DataBinder.Eval() in style attribute of an asp.net control
I've a asp.net linkbutton inside asp.net repeater control which renders multiple link buttons. I want to set the style of each and every linkbutton dynamically.
I'm trying
style="color:#6D7B8D;font-size:<%# DataBinder.Eval(Container.DataItem, "Title")%>;"
But i'm getting "The ser开发者_StackOverflowver tag is not well formed" error.
Any ideas?
My understanding is that using server tags for attributes requires that the server tag be used for the entire attribute value. Try changing it to this:
style='<%# "color:#6D7B8D;font-size:" + DataBinder.Eval(Container.DataItem, "Title") + ";" %>'
Notice how the entire style attribute is being constructed in C# code between the server tags.
Write it like that:
style='color:#6D7B8D;font-size:<%# DataBinder.Eval(Container.DataItem, "Title")%>;'
With single quotes instead of double quotes around the style
Remove
<%# Databinder.Eval(Container.DataItem, "Title") %>
To:
Text='<%# Databinder.Eval(Container.DataItem, "Title") %>'
We can also use trenary operator within it-- to custom the font size
style='<%# "color:#6D7B8D;font-size:"Convert.ToInt32(DataBinder.Eval(Container.DataItem, "fontSize"))<5?"40":"30");" %>'
精彩评论