将具有Eval参数的方法放入DataList中

时间:2012-05-10 21:03:15

标签: c# asp.net data-binding webforms

我想使用下面的技术更改数据列表中字段的前景色。但我不确定如何调用方法,与Eval结合使用。

此代码创建错误:'_Default.RowColor(string)'的最佳重载方法匹配具有一些无效参数

ASPX

<ItemTemplate>
<a href='<%# "http://cc.lookup.aspx?Quotenum=" + Eval("quote") %>'>
    <asp:Label ID="Label2" runat="server" ForeColor='<%# RowColor(Eval("status")) %>' Text='<%# Bind("quote") %>'></asp:Label>
    </a>
</ItemTemplate>

C#

public System.Drawing.Color RowColor(string rowType)
{
    System.Drawing.Color retval = System.Drawing.Color.Black;
    if (rowType == "Quote") retval = System.Drawing.Color.Gray;
    return retval;
}

2 个答案:

答案 0 :(得分:2)

您需要将其转换或转换为字符串。因为您的public System.Drawing.Color RowColor(string rowType)方法需要string类型参数。

试试这个。

 ForeColor='<%# RowColor(Eval("status").ToString()) %>' 

ForeColor='<%# RowColor((string) Eval("status")) %>' 

答案 1 :(得分:2)

您需要将Eval("Status")转换为字符串。

'<%# RowColor(Eval("Status").ToString()) %>'