程式碼如下:
foreach (DataRow ds2Dr in ds2.Tables[0].Rows)
{
if (ds2Dr["NORMAL"].ToString().Equals("Y"))
{
DataGridViewRow row = dataGridView2.Rows[j];
row.DefaultCellStyle.ForeColor = Color.Red;
}
j++;
}
//gridview2是從foreach那個table去生成的 所以資料行應該是能對應的
j為我設定的變數,測試時候把j直接改成固定數值 3 也沒有變色成功
另測試是否改色指令出錯 直接下
dataGridView2.DefaultCellStyle.ForeColor= Color.Red;
整個gridview是有成功變成紅通通的
測試使用
dataGridView2.Rows[1].Cells[1].Style.ForeColor = Color.Red;
也是變色失敗
懇請各位大大指點一下或是告知有何需要注意沒有改到,還是跟foreach有關。
GridView生成完畢直接改顏色也失敗
dataGridView2.DataSource = ds3.Tables["result"];
dataGridView2.Rows[3].DefaultCellStyle.ForeColor = Color.Red;
補充:在我另一程式使用相同指令是可以變色成功的
你是在RowDataBound
事件裡做的嗎?
像這樣
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.BackColor = System.Drawing.Color.AliceBlue;
}
}
我比較喜歡寫一個CSS讓GridView
載入就好
<style>
.tableStyle > tbody > tr:nth-child(2n+1){
background-color:green;
}
.tableStyle > tbody > tr:nth-child(2n){
background-color:yellow;
}
</style>
<asp:GridView ID="GridView1" runat="server" CssClass="tableStyle"></asp:GridView>