唉,这个标题也许不太贴边,表达不清楚,比如一个datalist,再比如这个datalist的第一列 ,是有同样的数据的,我们就会把这个datalist显示的时候按照第一列的数据分组,这样很多地方要求不同的组要用不同的颜色隔开,这有点类似于中国地图的颜色划分,但是远没那么复杂。
假设datalist1是我们的datalist,我们就按照上面的前两个控件的值对其颜色进行分组,我选了红色和绿色。
public
void
changecolor()
... {
string oldcolur = "0";
string oldvalue = ((TextBox)this.DataList1.Items[0].FindControl("TextBox1")).Text.ToString() + ((TextBox)this.DataList1.Items[0].FindControl("TextBox2")).Text.ToString();
string nowcolur = string.Empty;
string nowvalue = string.Empty;
for (int i = 0; i < this.DataList1.Items.Count; i++)
...{
nowvalue = ((TextBox)this.DataList1.Items[i].FindControl("TextBox1")).Text.ToString() + ((TextBox)this.DataList1.Items[i].FindControl("TextBox2")).Text.ToString();
if (nowvalue == oldvalue)
...{
if (oldcolur == "0")
...{
this.DataList1.Items[i].BackColor = Color.FromName("red");
}
else
...{
this.DataList1.Items[i].BackColor = Color.FromName("blue");
}
}
else
...{
oldvalue = nowvalue;
if (oldcolur == "0") oldcolur = "1";
else oldcolur = "0";
i--;
}
}
}
... {
string oldcolur = "0";
string oldvalue = ((TextBox)this.DataList1.Items[0].FindControl("TextBox1")).Text.ToString() + ((TextBox)this.DataList1.Items[0].FindControl("TextBox2")).Text.ToString();
string nowcolur = string.Empty;
string nowvalue = string.Empty;
for (int i = 0; i < this.DataList1.Items.Count; i++)
...{
nowvalue = ((TextBox)this.DataList1.Items[i].FindControl("TextBox1")).Text.ToString() + ((TextBox)this.DataList1.Items[i].FindControl("TextBox2")).Text.ToString();
if (nowvalue == oldvalue)
...{
if (oldcolur == "0")
...{
this.DataList1.Items[i].BackColor = Color.FromName("red");
}
else
...{
this.DataList1.Items[i].BackColor = Color.FromName("blue");
}
}
else
...{
oldvalue = nowvalue;
if (oldcolur == "0") oldcolur = "1";
else oldcolur = "0";
i--;
}
}
}