让Repeater显示多列的2种方法

让Repeater显示多列的2种方法 

方法1.
<table>
        <tr>
            <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
                <ItemTemplate>
                    <td>
                        <%#DataBinder.Eval(Container.DataItem,"something")%>
                    </td>
                </ItemTemplate>
            </asp:Repeater>
        </tr>
    </table>

即:将Repeater嵌入表格的一行中,然后在ItemDataBound事件中添加:e.Item.Controls.Add(new LiteralControl("</tr><tr>"));
方法2.
<asp:Repeater runat="server" ID="repeater1" OnItemDataBound="Repeater1_ItemDataBound">
        <HeaderTemplate>
            <table width="100%" border="0" align="center">
                <tr>
        </HeaderTemplate>
        <ItemTemplate>
            <td>
                <%#Eval("something")%>
            </td>
        </ItemTemplate>
        <FooterTemplate>
            </tr></table>
        </FooterTemplate>
    </asp:Repeater>
即:将Repeater的ItemTemplate在表格的一行中处理,然后同样在在ItemDataBound事件中添加:e.Item.Controls.Add(new LiteralControl("</tr><tr>"));

方法1与方法2殊路同归,效果一样,但是我本人比较喜欢第二种。

补充:方法1与方法2虽然都可以实现页面效果,但是并不是完美无缺。在出现以下绑定代码时
                        <ItemTemplate>
                            <td>
                                <asp:LinkButton ID="LinkButton1" runat="server" CommandName="link" Text='<%# Eval("CategoryName") %>' CommandArgument='<%# Eval("Id") %>'></asp:LinkButton>
                            </td>
                       </ItemTemplate>

如果点击LinkButton1,哪么页面样式又会返回初始时样式,,怎么办呢?解决办法就是在td之后添加Literal控件,让Literal控件内容根据需要动态生成相应的html标记,这样控件状态就会一直保持下去。并且可以由你自由处理各种事件了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值