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

来源:互联网 发布:阿里云tv助手 编辑:程序博客网 时间:2024/05/26 22:55

代码:

.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++;    }
原创粉丝点击