repeater多行多列带补齐td功能的实现

代码:

.aspx

    <asp:Repeater ID="list" runat="server" OnItemDataBound="list_ItemDataBound" OnItemCreated="list_ItemCreated">
<HeaderTemplate>
<table width="636" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"><tr>
</HeaderTemplate>
<ItemTemplate>
<td height="24" align="center" bgcolor="#FFFFFF"><%#Eval("ID") %></td>
</ItemTemplate>
<FooterTemplate>
</tr></table>
</FooterTemplate>
</asp:Repeater>

.aspx.cs

    protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(string));
for (int i = 1; i <=8; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i.ToString();
dt.Rows.Add(dr);
}

list.DataSource = dt;
list.DataBind();
dt.Dispose();
}

protected void list_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (i % 6 == 0 && i > 0 && i != list.Items.Count)
{
e.Item.Controls.Add(new LiteralControl("</tr><tr>"));
}

if (e.Item.ItemType == ListItemType.Footer && list.Items.Count % 6 != 0)
{
LiteralControl li = e.Item.Controls[0] as LiteralControl;
string oldHTML = li.Text;
string newHTML = String.Empty;
for (int c = list.Items.Count % 6; c < 6; c++)
{
newHTML += " <td height=\"24\" align=\"center\" bgcolor=\"#FFFFFF\"> </td> ";
}
li.Text = newHTML + oldHTML;
}
i++;
}



原文地址:https://www.cnblogs.com/superfeeling/p/2371836.html