OnRowDataBoundイベントでリーダーHasRowsの場合、GridView行の単一セルをGrayに設定したいだけです。 コードスニペットは、単一のセルではなく、列の色全体を変更します。 例:画像では、「Jan」の隣にあるセルだけを灰色にします。あなたはすべての行に対して同じ静的SQLクエリを使用グリッドビュー内の行のセルを検索し、OnRowDataBoundで何かを実行します。
protected void setcolor(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (txtShopBranch.Text == "Area1")
{
int index = e.Row.RowIndex;
string checkdayone = "SELECT one FROM tblregulardays WHERE months = 'Jan' AND shopbranch = 'Area1' AND one = '1'";
NpgsqlCommand findDayOne = new NpgsqlCommand (checkdayone, con);
con.Open();
NpgsqlDataReader reader = findDayOne.ExecuteReader();
if(reader.HasRows)
{
e.Row.Cells[32].BackColor = System.Drawing.Color.Gray;
}
else
{
e.Row.Cells[32].BackColor = System.Drawing.Color.White;
}
con.Close();
}
}
}
あなたのコードはうまくいくはずです。だから私はあなたのクエリが動作しないと仮定し、常にreowを返します。デバッガを使用しましたか? –