NLV
NLV

Reputation: 21657

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 server tag is not well formed" error.

Any ideas?

Upvotes: 15

Views: 21880

Answers (4)

Lijin Durairaj
Lijin Durairaj

Reputation: 5240

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");" %>'

Upvotes: 0

Kirk Woll
Kirk Woll

Reputation: 77616

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.

Upvotes: 26

GregD
GregD

Reputation: 7000

Remove

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

To:

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

Upvotes: 0

Amr Elgarhy
Amr Elgarhy

Reputation: 69042

Write it like that:

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

With single quotes instead of double quotes around the style

Upvotes: 4

Related Questions