【问题标题】:Placing a Method with Eval parameter into a DataList将带有 Eval 参数的方法放入 DataList
【发布时间】:2012-05-10 21:03:14
【问题描述】:

我想使用以下技术更改数据列表中字段的前景色。但我不确定如何调用方法,结合 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;
}

【问题讨论】:

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


    【解决方案1】:

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

    试试这个。

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

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

    【讨论】:

    • 我们又见面了......几乎完全相同的问题:)
    • 没想到我离得这么近。仍在使用相同的 DataGrid。谢谢。
    • @Dave:是的,但是一个小错误会给你带来麻烦。没关系它会发生一段时间。
    【解决方案2】:

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

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

    【讨论】:

    • 是的,你的问题几乎是一样的 +1。
    猜你喜欢
    • 2015-01-19
    • 1970-01-01
    • 2011-04-25
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多