DataGrid行单元格合并显示 (增加交错行颜色设置)
//绑定数据集
public void BindGrid()
{
DataSet ds = new DataSet();
sqlDataAdapter2.Fill(ds);
DataGrid2.DataSource = ds.Tables[0];
DataGrid2.DataBind();
//合并相同的单元格
string strTemp;
int intSpan = 0;
int nowSpan = 0;
bool flag = false;
int i, j;
for(i = 0; i < DataGrid2.Items.Count; i++)
{
intSpan = 1;
strTemp = DataGrid2.Items[i].Cells[0].Text;
if (flag == true)
{
flag = false;
DataGrid2.Items[i].BackColor = Color.SkyBlue;
for(j = i + 1; j< DataGrid2.Items.Count; j++)
{
if(String.Compare(strTemp,DataGrid2.Items[j].Cells[0].Text)==0)
{
intSpan = intSpan + 1;
DataGrid2.Items[i].Cells[0].RowSpan = intSpan;
//DataGrid2.Items[i].Cells[1].RowSpan = intSpan;
//DataGrid2.Items[i].Cells[2].RowSpan = intSpan;
DataGrid2.Items[i].Cells[3].RowSpan = intSpan;
DataGrid2.Items[j].BackColor = Color.SkyBlue;
DataGrid2.Items[j].Cells[0].Visible = false;
//DataGrid2.Items[j].Cells[1].Visible = false;
//DataGrid2.Items[j].Cells[2].Visible = false;
DataGrid2.Items[j].Cells[3].Visible = false;
}
}
}
else
{
DataGrid2.Items[i].BackColor = Color.White;
flag = true;
for(j = i + 1; j< DataGrid2.Items.Count; j++)
{
if(String.Compare(strTemp,DataGrid2.Items[j].Cells[0].Text)==0)
{
intSpan = intSpan + 1;
DataGrid2.Items[i].Cells[0].RowSpan = intSpan;
//DataGrid2.Items[i].Cells[1].RowSpan = intSpan;
//DataGrid2.Items[i].Cells[2].RowSpan = intSpan;
DataGrid2.Items[i].Cells[3].RowSpan = intSpan;
DataGrid2.Items[j].BackColor = Color.White;
DataGrid2.Items[j].Cells[0].Visible = false;
//DataGrid2.Items[j].Cells[1].Visible = false;
//DataGrid2.Items[j].Cells[2].Visible = false;
DataGrid2.Items[j].Cells[3].Visible = false;
}
}
}
nowSpan += intSpan;
i = nowSpan - 1;
}
}
public void BindGrid()
{
DataSet ds = new DataSet();
sqlDataAdapter2.Fill(ds);
DataGrid2.DataSource = ds.Tables[0];
DataGrid2.DataBind();
//合并相同的单元格
string strTemp;
int intSpan = 0;
int nowSpan = 0;
bool flag = false;
int i, j;
for(i = 0; i < DataGrid2.Items.Count; i++)
{
intSpan = 1;
strTemp = DataGrid2.Items[i].Cells[0].Text;
if (flag == true)
{
flag = false;
DataGrid2.Items[i].BackColor = Color.SkyBlue;
for(j = i + 1; j< DataGrid2.Items.Count; j++)
{
if(String.Compare(strTemp,DataGrid2.Items[j].Cells[0].Text)==0)
{
intSpan = intSpan + 1;
DataGrid2.Items[i].Cells[0].RowSpan = intSpan;
//DataGrid2.Items[i].Cells[1].RowSpan = intSpan;
//DataGrid2.Items[i].Cells[2].RowSpan = intSpan;
DataGrid2.Items[i].Cells[3].RowSpan = intSpan;
DataGrid2.Items[j].BackColor = Color.SkyBlue;
DataGrid2.Items[j].Cells[0].Visible = false;
//DataGrid2.Items[j].Cells[1].Visible = false;
//DataGrid2.Items[j].Cells[2].Visible = false;
DataGrid2.Items[j].Cells[3].Visible = false;
}
}
}
else
{
DataGrid2.Items[i].BackColor = Color.White;
flag = true;
for(j = i + 1; j< DataGrid2.Items.Count; j++)
{
if(String.Compare(strTemp,DataGrid2.Items[j].Cells[0].Text)==0)
{
intSpan = intSpan + 1;
DataGrid2.Items[i].Cells[0].RowSpan = intSpan;
//DataGrid2.Items[i].Cells[1].RowSpan = intSpan;
//DataGrid2.Items[i].Cells[2].RowSpan = intSpan;
DataGrid2.Items[i].Cells[3].RowSpan = intSpan;
DataGrid2.Items[j].BackColor = Color.White;
DataGrid2.Items[j].Cells[0].Visible = false;
//DataGrid2.Items[j].Cells[1].Visible = false;
//DataGrid2.Items[j].Cells[2].Visible = false;
DataGrid2.Items[j].Cells[3].Visible = false;
}
}
}
nowSpan += intSpan;
i = nowSpan - 1;
}
}