1 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
2 {
3 if (e.Row.RowType == DataControlRowType.DataRow)
4 {
5 //string title = (string)(DataBinder.Eval(e.Row.DataItem,"cls"));不知道为什么不行
6 string ti = e.Row.Cells[3].Text.ToString();
7 if ( ti == "二班")
8 {
9 e.Row.BackColor = System.Drawing.Color.Red;
10 }
11 }
12 }
为什么行不变颜色?
解决方案:主要是绑定后过滤
GridView1.DataBind();
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
DataRowView mydrv = myds.Tables["0"].DefaultView[i];
string score = Convert.ToString(mydrv["score"]);
if (Convert.ToDouble(score) < 34297.00)//大家这里根据具体情况设置可能ToInt32等等
{
GridView1.Rows[i].Cells[4].BackColor = System.Drawing.Color.Red;
}
}
if (e.Row.RowType == DataControlRowType.DataRow)//判定当前的行是否属于datarow类型的行
{
//当鼠标放上去的时候 先保存当前行的背景颜色 并给附一颜色
e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='yellow',this.style.fontWeight='';");
//当鼠标离开的时候 将背景颜色还原的以前的颜色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor,this.style.fontWeight='';");
}
//单击行改变行背景颜色
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "this.style.backgroundColor='#99cc00'; this.style.color='buttontext';this.style.cursor='default';");
}
是否与前台的css样式有冲突?
他的代码有问题!
7 if ( ti == "二班")
8 {
9 e.Row.BackColor = System.Drawing.Color.Red;
10 }
问题解析:在第"8"打断点跟踪,看是否程序能进去,如果进不去就是第“6”行的代码有问题或者是对应的单元格没有"二班"的数据。