首页 > 代码库 > 通过Repeater控件绑定数据,相同数据合并单元格。
通过Repeater控件绑定数据,相同数据合并单元格。
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列的合并单元格方法
}
}
通过Repeater控件绑定数据,相同数据合并单元格。