思路:
服务器端的GridView控件与客户端的Table成对应关系,HTML标记可以通过style等属性设置各种样式,服务器端控件相比之下就要 逊色几分。解决的方法:通过Attributes.Add()方法为服务器端控件添加样式。
代码:
假设GridView中包含“姓名”“地址”“性别”等字段,现在要把记录中性别为“男”的行背景设为红色,则可以在GridView1的DataBound()事件中书写代码如下:
void DetailsView1_DataBound(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (GridView1.Rows[i].Cells[x].Text == "男")
{
//将特定行的背景色设为红色
GridView1.Rows[i].Attributes.Add("bgcolor", "red");
//将特定单元格的颜色设为灰色
// GridView1.Rows[i].Cells[x].Attributes.Add("bgcolor", "gray");
}
}
}
说明:
代码内绿底红字的Cells[x]中的x为性别字段所在的列值。如果性别字段在数据库中以bit类型存储,则该字段在GridView中将显示成CheckBox,这时代码应改为
void DetailsView1_DataBound(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox chk = (CheckBox) GridView1.Rows[i].Cells[x].Controls[0];
if (chk.Checked == true)
{
//将特定行的背景色设为红色
GridView1.Rows[i].Attributes.Add("bgcolor", "red");
}
}
}
浙公网安备 33010602011771号