2012-05-10 45 views
1

我想使用下面的技巧更改數據列表中的字段的前景色。但我不知道如何調用一個方法,結合Eval。將具有Eval參數的方法放入DataList中

此代碼創建的錯誤:關於 '_Default.RowColor(字符串)' 最好的重載的方法匹配具有一些無效參數

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

您需要將其轉換或轉換爲字符串。因爲你的public System.Drawing.Color RowColor(string rowType)方法需要string類型的參數。

試試這個。

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

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

我們再次見面...幾乎完全一樣的問題:) –

+0

沒有意識到我是如此接近。仍在使用同一個DataGrid。謝謝。 – Dave

+0

@Dave:是的,但有一點小錯誤會給你造成問題。沒關係它發生一段時間。 – jams

2

您需要Eval("Status")轉換爲字符串。

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

是的,問題幾乎與你+1。 – jams

相關問題