Asp.net 列表显示为两列

Asp.net 列表显示为两列,asp.net,list,multiple-columns,Asp.net,List,Multiple Columns,我有一个动态列表asp.net收集的数据,需要显示在aspx页面上。我希望数据分为两列,根据列表中项目的数量从左到右填充。在这种情况下,最好使用哪种网络控件?您可以使用,或者。这实际上是一个问题,您需要哪些功能来支持排序、过滤、分页等。除了您的布局要求之外,上述所有功能都可以满足您的需要 GridView和Repeater有点重,但为实现更高级的功能提供了简单的挂钩 更新 例如: <asp:DataList runat="server" id="dltest"

我有一个动态列表asp.net收集的数据,需要显示在aspx页面上。我希望数据分为两列,根据列表中项目的数量从左到右填充。在这种情况下,最好使用哪种网络控件?

您可以使用,或者。这实际上是一个问题,您需要哪些功能来支持排序、过滤、分页等。除了您的布局要求之外,上述所有功能都可以满足您的需要

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> 

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

中继器可以在这种情况下工作,并允许您灵活地设置样式

CSS

ASPX

EvalDataColumn将表示要显示的表列的名称,您可以在codebehind中或使用拖放数据源控件之一设置中继器的数据源


由于float:left,CSS将使数据显示为从左向右的两列。容器的宽度为300px,每个项目将为150px,这将使其具有两列外观。

我应该设置DataList的哪些属性以使其成为两列?你能给我举个例子吗?不,我想我不清楚我的问题,所以我想要的是当我有一个5个项目的清单时。。。。我需要列表的内容显示在2列中,比如3列在左边,2列在右边。当列表长度为3时,应在右栏显示2,在左栏显示1。。。。长度是动态的,我不知道如何指定两列,以便数据在两列中自动调整。。。我很感谢你的评论,他们非常感谢helpful@user1183713这就是数据列表上RepeatColumns设置的用途。请参阅我发布的标记。ItemTemplate也分为两列,这只是巧合。谢谢@lcarus!这很好。另一个后续问题是,如果我有一个静态列表,这意味着我现在有一个静态列表,我希望将行安排在两列中。一次填充一行。像1,2\n 3,4\n有什么方法可以实现这一点吗?问题是,我正在动态地为列表中的一些项目设置Visible=false。因此,列表必须进行调整它本身因为没有RepeatColumns=2。。。你建议我怎么做?你是说下面显示的两个div标签吗?一个有浮子:左,另一个没有?还有我怎么控制它的高度说3。。。因此,如果列表中有3个或更少的项目,则它是一列,如果超过3个,则会溢出到第二列?您可以使用CSS来调整人在一行中的显示方式。如果您想要3个,您可以将容器调整为与其中3个项目一样宽。因此,如果您的项目是150px宽,您将需要使您的容器450px宽。这样你就可以连续装3个了。啊!现在我明白了,但当我指的是3时,我指的是高度而不是柱数。。。但是我得到了我的答案,非常感谢你!你真是太好了,如果你给了容器溢出:auto,你不需要最后有点凌乱的。我可以把列的长度设置为3吗?如果超过3,它会溢出到下一列吗?
.container{margin:0; width:300px;}
.item{float:left;width:150px;height:30px;}
.clear{clear:both;width:100%; height:1px;}
<div class="container">
    <asp:Repeater ID="rptTest" runat="server">
    <ItemTemplate>
        <div class="item"><%#Eval("DataColumn") %></div>
    </ItemTemplate>
    </asp:Repeater>
    <div class="clear"></div>
</div>