2016-04-24 47 views
2

私はこのコードで試しましたが、私のためには動作しません。セルの値に基づいて行の背景色を変更する方法

for (int i = 0; i < GerezCmdsGridView.Rows.Count; i++) 
{ 
    if (Convert.ToDouble(GerezCmdsGridView.Rows[i].Cells[7].Value) == 0 || GerezCmdsGridView.Rows[i].Cells[7].Value == DBNull.Value) 
    { 
     GerezCmdsGridView.Rows[i].DefaultCellStyle.BackColor = Color.Red; 
    }    
} 

enter image description here

+0

正確には動作しません。例外やエラーメッセージが表示されますか?あなたはもっと具体的になりますか? –

+0

はい、オブジェクトはDBNullから他の型にキャストできません。 このコードにはどのイベントを使用する必要がありますか? –

答えて

1

私は、条件の順序が問題だと思います。最初に値をdoubleに変換しようとしています。 あなたはDBNull.Valueを確認します。

はSystem.InvalidCastExceptionの::オブジェクトにすることはできませんあなたが最初の例外が発生しますがDBNull(Convert.ToDouble(DBNull.Value))を変換しようとしている場合

if (GerezCmdsGridView.Rows[i].Cells[7].Value == DBNull.Value || 
    Convert.ToDouble(GerezCmdsGridView.Rows[i].Cells[7].Value) == 0) 

だから、順序を切り替える必要がありますDBNullから他の型にキャストします。さらにとして

+0

ありがとう、それは動作します! –

0

この列がBoundFieldであれば、あなたはそれはあなたがその列にDBNull値を取得するときに、表示する値だけでなくNullDisplayText propertyだ設定することができます。

関連する問題