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;
}
}
{
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;
}
}