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;

            }


        }
原文地址:https://www.cnblogs.com/adam/p/1023368.html