2010-08-08 5 views
13

Ich habe eine asp.net Linkbutton in asp.net Repeater-Steuerelement, die mehrere Link-Schaltflächen rendert. Ich möchte den Stil jedes einzelnen Linkbuttons dynamisch festlegen.Verwenden von DataBinder.Eval() im Stil Attribut einer asp.net Kontrolle

Ich versuche

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

Aber ich bin immer "Der Server-Tag ist nicht wohlgeformt" -Fehler.

Irgendwelche Ideen?

Antwort

20

Mein Verständnis ist, das mit ser Ver-Tags für Attribute erfordert, dass das Server-Tag für den gesamten-Attributwert verwendet wird. Versuchen Sie es zu diesem Wechsel:

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

Beachten Sie, wie der gesamte Stil-Attribut wird in C# -Code zwischen den Server-Tags gebaut.

+0

In meiner Sicht die Apostrophe sind unnötig verwenden können: geben Sie einfach style = <% # „color: # 6D7B8D; font- Größe: "+ DataBinder.Eval (Container.DataItem," Titel ") +"; " %> – Franziee

+0

Dein Code funktioniert perfekt für mich, danke :-) –

4

schreiben es wie folgt aus:

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

Mit einfachen Anführungszeichen statt doppelte Anführungszeichen um den Stil

0

entfernen

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

An:

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

Wir auch Trenary Betreiber innerhalb es--, um benutzerdefinierte die Schriftgröße

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