在ASP.NET控件的样式属性中使用DataBinder.Eval()

15

我有一个放在ASP.NET Repeater控件中的ASP.NET LinkButton,它呈现了多个链接按钮。我想动态设置每个链接按钮的样式。

我正在尝试。

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

但我得到了“服务器标记格式不正确”的错误。

有什么想法吗?

4个回答

25

我理解的是,使用服务器标记作为属性值需要将整个属性值都写成服务器标记。尝试将其更改为以下内容:

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

注意整个style属性是如何在服务器标签之间使用C#代码进行构建的。


在我看来,撇号是不必要的:只需键入style=<%# "color:#6D7B8D;font-size:" + DataBinder.Eval(Container.DataItem, "Title") + ";" %>。 - Franziee

4

像这样写:

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

使用单引号而不是双引号来包含样式


0

移除

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

To:

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

0

我们还可以在其中使用三元运算符--自定义字体大小

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接