2012-05-10 5 views
1

以下の手法を使用してデータリスト内のフィールドのforecolorを変更したいと思います。しかし、Evalと組み合わせてメソッドを呼び出す方法がわかりません。DataListにEvalパラメータを含むメソッドを配置する

このコードは、エラーを作成します。 '_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)メソッドは型引数を取るためです。

これを試してください。

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

関連する問題