1:通过Repeater绑定数据源
this.Repeater.DataSource = dm;
this.Repeater.DataBind();
2:循环遍历所有列for (int i = 0; i < td.length; i++) //i小于列长度{ string rptd = "ts"; //rptd为td单元ID命名 string tdIdName = rptd + i.ToString(); Merge(tdIdName); // 把当前列的 td 的 ID文本作为方法的参数}
private void Merge(string tdIdName1)
{ for (int i = reptmCome.Items.Count - 1; i > 0; i--) // rptIncome.Items.Count - 1 { MergeGet(tdIdName1, i); }}private void MergeGet(string tdIdName1, int i)
{ HtmlTableCell cellPrev = reptmCome.Items[i - 1].FindControl(tdIdName1) as HtmlTableCell; HtmlTableCell cell = reptmCome.Items[i].FindControl(tdIdName1) as HtmlTableCell; cell.RowSpan = (cell.RowSpan == -1) ? 1 : cell.RowSpan; cellPrev.RowSpan = (cellPrev.RowSpan == -1) ? 1 : cellPrev.RowSpan; if (cell.InnerText == cellPrev.InnerText) { // 让下一行的当前单元格的跨越行数 + 当前行的跨越行数 cellPrev.RowSpan += cell.RowSpan; cell.Visible = false; // 隐藏当前行 //关键代码,再判断执行第2列的合并单元格方法 }}