ASP.NET 2.0 repeater控件实现多列完美显示,比网上其它方法要好。
前台代码:
<div id="wzlist">
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table><tr style="height:24px;">
</HeaderTemplate>
<ItemTemplate>
<td style="width:100px;"><asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#"~/wzstypemore.aspx?typeid="+Eval("Typeid").ToString() %> '><%#Eval("Typename") %></asp:HyperLink></td>
</ItemTemplate>
<FooterTemplate> </tr></table></FooterTemplate>
</asp:Repeater>
</div>
后台代码:
public partial class wztypes : System.Web.UI.Page
{
int i = 1;
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = zxwztypeman.getwztypelist();
Repeater1.DataBind();
}
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
if ((i % 4 == 0) && (i >= 4))//是否换行
{
e.Item.Controls.Add(new LiteralControl("</tr><tr>"));
}
i++;
}
if (e.Item.ItemType == ListItemType.Footer)//在末尾补齐表格单元格
{
string s = string.Empty ;
if ((i >= 4) && ((i - 1) % 4 > 0))
{
for (int z = 0; z < (4-(i - 1) % 4); z++)
{
s += "<td> </td>";
}
e.Item.Controls.AddAt(0, new LiteralControl(s));
}
}
}
}
前台代码:
<div id="wzlist">
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table><tr style="height:24px;">
</HeaderTemplate>
<ItemTemplate>
<td style="width:100px;"><asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#"~/wzstypemore.aspx?typeid="+Eval("Typeid").ToString() %> '><%#Eval("Typename") %></asp:HyperLink></td>
</ItemTemplate>
<FooterTemplate> </tr></table></FooterTemplate>
</asp:Repeater>
</div>
后台代码:
public partial class wztypes : System.Web.UI.Page
{
int i = 1;
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = zxwztypeman.getwztypelist();
Repeater1.DataBind();
}
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
if ((i % 4 == 0) && (i >= 4))//是否换行
{
e.Item.Controls.Add(new LiteralControl("</tr><tr>"));
}
i++;
}
if (e.Item.ItemType == ListItemType.Footer)//在末尾补齐表格单元格
{
string s = string.Empty ;
if ((i >= 4) && ((i - 1) % 4 > 0))
{
for (int z = 0; z < (4-(i - 1) % 4); z++)
{
s += "<td> </td>";
}
e.Item.Controls.AddAt(0, new LiteralControl(s));
}
}
}
}