列表显示为2列

时间:2012-02-01 21:02:36

标签: asp.net list multiple-columns

我有一个动态List(asp .net集合)的数据,我需要在aspx页面上显示。我希望两列中的数据从左到右填充,具体取决于列表中的项目数。在这种情况下,最好使用哪种webcontrol?

2 个答案:

答案 0 :(得分:3)

您可以使用DataListRepeaterGridView。除了布局要求之外,您需要支持哪些功能(排序,过滤,分页等)(上述所有功能都可以满足您的需求)。

GridView和Repeater有点重,但提供了简单的钩子来实现更高级的功能。

<强>更新

示例:

<asp:DataList runat="server" id="dltest" 
                Border="1"
                Font-Name="Verdana" CellPadding="4"
                Font-Size="10pt"
                RepeatColumns="2" >
   <ItemTemplate>
     <table>
         <tr>
           <td>
              <%# DataBinder.Eval(Container.DataItem, "Description") %>
           </td>
           <td>
              <%# DataBinder.Eval(Container.DataItem, "Value") %>
           </td>
          </tr>
     </table>
   </ItemTemplate>
</asp:DataList> 

注意:根据您的需要进行了修改,但这应该可以让您入门。

答案 1 :(得分:2)

转发器可以在这种情况下工作,并允许你很灵活地设计它。

CSS

.container{margin:0; width:300px;}
.item{float:left;width:150px;height:30px;}
.clear{clear:both;width:100%; height:1px;}

ASPX

<div class="container">
    <asp:Repeater ID="rptTest" runat="server">
    <ItemTemplate>
        <div class="item"><%#Eval("DataColumn") %></div>
    </ItemTemplate>
    </asp:Repeater>
    <div class="clear"></div>
</div>

Eval(“DataColumn”)表示您想要显示的表列的名称,您可以在代码隐藏中或使用拖放数据源控件之一设置转发器的数据源。

由于“float:left”,CSS将使数据从左到右显示为2列。容器的宽度为300px,每个容器的容量为150px,这样就可以实现两列外观。