<asp:Repeater ID="rpList" runat="server">
<ItemTemplate>
<tr align="center">
<td runat="server" id="td1">
<%#Eval("typename")%>
</td>
<td>
<%#Eval("workname")%>
</td>
<td>
<%#Eval("number")%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
#region 数据绑定
/// <summary>
/// 数据绑定
/// </summary>
private void DataInforBind()
{
ServiceWorkEntity model = new ServiceWorkEntity();
model.Year = Convert.ToInt32(year);
model.WorkType = worktype;
model.Reviews = reviews;
model.Month = Convert.ToInt32(month);
ProjectEntity project = new ProjectEntity();
project.ProType = protype;
DataSet ds = ServiceWorkBLL.StaByMonthGet(model, project);
this.rpList.DataSource = ds.Tables[0].DefaultView;
this.rpList.DataBind();
MergeCell(rpList, "td1");
}
#endregion
#region Repeater多列分别合并单元格
/// <summary>
/// 选择行
/// </summary>
/// <param name="tdName1"></param>
/// <param name="tdName2"></param>
private void MergeCell(Repeater repeater, string tdName1)
{
for (int i = repeater.Items.Count-1; i > 0; i--)
{
MergeCellSet(repeater, tdName1, i);
}
}
/// <summary>
/// 多列分别合并单元格
/// </summary>
/// <param name="tdName1"></param>
/// <param name="tdName2"></param>
/// <param name="i"></param>
private void MergeCellSet(Repeater repeater, string tdName1, int i)
{
HtmlTableCell cellPrev = repeater.Items[i - 1].FindControl(tdName1) as HtmlTableCell;
HtmlTableCell cell = repeater.Items[i].FindControl(tdName1) as HtmlTableCell;
cell.RowSpan = (cell.RowSpan == -1) ? 1 : cell.RowSpan;
cellPrev.RowSpan = (cellPrev.RowSpan == -1) ? 1 : cellPrev.RowSpan;
if (cell.InnerText == cellPrev.InnerText)
{
cell.Visible = false;
cellPrev.RowSpan += cell.RowSpan;
}
}
#endregion