求救!关于GridView的一个问题!
我想判断GridView中的第一列的值,如果该值为“数据结构”,就用红色显示。
我的代码是
protected void GV_CourseList_RowDataBound1(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[0].Text == "数据结构 ")
{
e.Row.Cells[0].ForeColor=System.Drawing.Color.Red;
}
Response.Write(e.Row.Cells[0].Text);//测试一下
}
}
当数据源是用sqldatasource时就可以正常显示,但用dataset作为数据源时,数据能够在gridview中正常显示,但颜色没有变化。写了一个Response.Write的语句,结果里面的内容都为空,所以颜色判断不出来。
请教个位高手是怎么回事?我就是想用自己的dataset作为数据源,怎么解决?谢谢啦~~~~~~~
[解决办法]
if (e.Row.RowIndex > = 0)
{
//GridView1.Rows[1].Cells[0].ForeColor = "red ";
if (e.Row.RowType == DataControlRowType.DataRow)
{
string unitsInStock = DataBinder.Eval(e.Row.DataItem, "type ").ToString();
if (Convert.ToInt32(unitsInStock) == 1)
{
e.Row.BackColor = System.Drawing.Color.FromArgb(158, 205, 237);
}
string unitsInStock1 = DataBinder.Eval(e.Row.DataItem, "lanaguagetype ").ToString();
if (Convert.ToInt32(unitsInStock1) == 2)
{
e.Row.BackColor = System.Drawing.Color.FromArgb(170, 205, 240);
}
string unitsInStock2 = DataBinder.Eval(e.Row.DataItem, "lanatype ").ToString();
if (Convert.ToInt32(unitsInStock2) == 3)
{
e.Row.BackColor = System.Drawing.Color.FromArgb(180, 220, 230);
}
}