DataGrid合并行(C#)

private void DgYear_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        {
            for(int i=0;i<this.DgYear.Items.Count-1;i++)
            {
                int colnum=1;
                int j;
                for(j=i+1;j<this.DgYear.Items.Count-1;j++)
                {
                    if(this.DgYear.Items[i].Cells[0].Text == this.DgYear.Items[j].Cells[0].Text)
                    {
                        colnum++;
                        this.DgYear.Items[i].Cells[0].RowSpan = colnum;
                        this.DgYear.Items[j].Cells[0].Visible = false;
                    }
                    else
                    break;
                }
                i=j-1;
            }
        }

做项目有时也会遇到要合并DataGrid单元格的情况。在DataGrid单元格中有ColumnSpan、RowSpan、Visible属性,这跟 Table控件中的colspan、rowspan属性相同,因此我们可以利用这些属性来合并DataGrid单元格。以下两个合并单元格的函数,是我在 项目中实际用到的。说明:prevDg为DataGrid的变量。
void ColSpan()//合并列单元格
  {
   for(int i=0;i<prevDg.Items.Count;i++)
   {
    if (prevDg.Items[i].Cells[3].Text.Trim()=="0" && prevDg.Items[i].Cells[4].Text.Trim()=="0" )
    {
     prevDg.Items[i].Cells[2].ColumnSpan=3;
     prevDg.Items[i].Cells[3].Visible=false;
     prevDg.Items[i].Cells[4].Visible=false;
    }
   }
  }
  void RowSpan()//合并行单元格
  {
   int j;
   int n;
   for(int i=0;i<prevDg.Items.Count;i++)
   {
    n=1;
    for (j=i+1;j<prevDg.Items.Count;j++)
    {
     if(prevDg.Items[i].Cells[0].Text.Trim()==prevDg.Items[j].Cells[0].Text.Trim() && prevDg.Items[i].Cells[7].Text.Trim()==prevDg.Items[j].Cells[7].Text.Trim())
     {
      n += 1; 
      prevDg.Items[i].Cells[0].RowSpan=n;
      prevDg.Items[j].Cells[0].Visible=false;
     }
     else break;
    }
    i=j-1;
   }               
  }
posted @ 2010-08-27 17:15  lkvm  阅读(1388)  评论(0编辑  收藏  举报
我的新浪围脖: http://t.sina.com.cn/reglong