方法一:效果图1
第一步:数据绑定 cs代码
DataTable objDataTable = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string str1 = string.Format("select * from yuyue where 教练='王黎明' and 日期 between '2015-12-17'and '2015-12-21'");
DataSet ds1 = sql.GetSet(str1);
objDataTable = ds1.Tables[0];
this.rptList.DataSource = objDataTable;
this.rptList.DataBind();
//data_bangding();
}
}
protected void rptList_PreRender(object sender, EventArgs e)
{
for (int i = 0; i < rptList.Items.Count - 1; i++)
{
Label lb = (Label)rptList.Items[i].FindControl("Label1") as Label;//获取repeater里面控件的值
Label lb1 = (Label)rptList.Items[i + 1].FindControl("Label1") as Label;
if (lb.Text != null && lb1.Text != null)
{
if (lb.Text == lb1.Text)
{
lb1.Visible = false;
}
}
}
第二步 aspx代码
<table border="0" align="center" width="100%" cellspacing="0" cellpadding="0" >
<asp:Repeater ID="rptList" runat="server" OnPreRender="rptList_PreRender">
<ItemTemplate>
<tr style ="border: solid thin red;">
<td id="rq" colspan ="3" style ="font-size:20px;text-align:left;" width="40%" >
<asp:Label ID="Label1" runat="server" ForeColor ="White" Text='<%# Eval ("日期")%>'></asp:Label></td>
</tr>
<tr class="head-title">
<asp:HiddenField ID="hidId" Value='<%#Eval("编号")%>' runat="server" />
<td style =" width :40%; text-align :right ; color :white;"><%# Eval("时间段")%></td>
<td style =" width :30%;text-align :center;color :white;"><%# Eval ("剩余人数")%></td>
<asp:HiddenField ID="swrenshu" Value='<%#Eval("人数")%>' runat="server" />
<td style ="width:40%;text-align :left;"><asp:Button ID="btn" runat="server" Text="预约" onclientclick="delcfm()" CommandArgument='<%#Eval("编号")%>' Width ="70px" Height ="30px" Font-Size="20px" ForeColor="White"/></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
方法二:
cs代码
绑定数据
protected void Page_Load(object sender, EventArgs e)
{
DataTable objDataTable = new DataTable();
if (!IsPostBack)
{
string str1 = string.Format("select * from yuyue where 教练='王黎明' and 日期 between '2015-12-15'and '2015-12-17'");
DataSet ds1 = sql.GetSet(str1);
objDataTable = ds1.Tables[0];
this.Repeater1.DataSource = objDataTable;
this.Repeater1.DataBind();
this.rptList.DataSource = objDataTable;
this.rptList.DataBind();
//data_bangding();
}
}
合并行
protected void Repeater1_PreRender1(object sender, EventArgs e)
{
for (int i = Repeater1.Items.Count - 1; i > 0; i--)
{
//tcid是需要合并列的列名
HtmlTableCell oCell_previous = Repeater1.Items[i - 1].FindControl("tdriqi") as HtmlTableCell;
HtmlTableCell oCell = Repeater1.Items[i].FindControl("tdriqi") as HtmlTableCell;
if (oCell_previous != null && oCell != null)
{
oCell.RowSpan = (oCell.RowSpan == -1) ? 1 : oCell.RowSpan;
oCell_previous.RowSpan = (oCell_previous.RowSpan == -1) ? 1 : oCell_previous.RowSpan;
if (oCell.InnerText == oCell_previous.InnerText)
{
oCell.Visible = false;
oCell_previous.RowSpan += oCell.RowSpan;
}
}
}
aspx代码
<div>
<table width="100%" >
<tr align="center">
<th>日期</th>
<th>时间段</th>
<th>剩余人数</th>
<th>是否预约</th>
</tr>
</table>
<asp:Repeater ID="Repeater1" runat="server" OnPreRender="Repeater1_PreRender1">
<ItemTemplate>
<table width="100%" id="mytable" >
<tr align="center">
<td id="tdriqi" runat="server"> <%#Eval("日期") %></td>
<td id="tdxsname" runat="server"> <%#Eval("时间段")%></td>
<td> <%#Eval("剩余人数")%></td>
<td><asp:Button ID="Button1" runat="server" Text="预约" /></td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</div>