列表框控件中的多个列

时间:2010-04-15 15:00:34

标签: c# asp.net listbox multiple-columns

如何在列表框中显示两列?

9 个答案:

答案 0 :(得分:5)

列表框未设计为显示多列数据。即使是Windows Forms版本也不直接支持这种数据显示。

您的要求不明确,但最简单的方法是使用GridView控件。它为您提供了许多开箱即用的功能,您可以非常轻松地将其扩展到更多列。如果您需要更多地控制外观或功能,可以使用DataList代替。

要获得滚动功能,您可以使用滚动<div>或仅使用GridView的分页机制(如果合适)。

答案 1 :(得分:3)

您可以将其排成一行,就像数据位于2列

一样
new ListItem("blah1".PadRight(10, ' ') + "blah2");

如下所示:http://articles.dotheweb.net/post/Formatting-columns-in-a-ListBox-of-ComboBox.aspx

此外,您可以使用DataList滚动自己。

答案 2 :(得分:1)

看起来你应该编写自己的控件,或者你可以使用listview控件。

答案 3 :(得分:0)

正如Nick Craver已经评论过的那样,ListView可能不是多列信息的正确控件。

使用DataGridView可能更好的做法,而不是将您的列表破解为显示为有两列。它将更容易设置,格式化,您的数据将以更灵活的方式保存。

DataGridViews也支持assigning Lists of objects as datasources,如果这样可以让事情变得更容易。

答案 4 :(得分:0)

如果我理解正确,您希望数据列显示水平。这可以通过使用DataList并将RepeatDirection设置为“Hozizontal”并使用指定的重复列来实现。 例如:

<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" CellSpacing="10" >

答案 5 :(得分:0)

使用列表视图它是多列列表框的完美替代

答案 6 :(得分:0)

如果您引用工具包并添加wrapPanelOrientation,则可以并排使用多个项目;) 它将列出如

1stItem      2ndItem

3rdItem      4thItem .. ect..

ListBox.ItemsPanel>

ItemsPanelTemplate>
    toolkit:WrapPanelOrientation="Horizontal"FlowDirection="LeftToRight"ItemWidth="220"ItemHeight="60"/>

/ItemsPanelTemplate>

/ListBox.ItemsPanel>

/ListBox>

答案 7 :(得分:0)

如果要使用ListBox中的列,则必须基于对齐方式。

例如:

String columns = "{0, -55}{1, -35}{2, -35}";
ListBox1.Items.Add(String.Format(columns, "Filename", "Selected DateModified", "Vault DateModified"));
ListBox1.Items.Add(String.Format(columns, fileName, datetime1, datetime2));  

我自己的以下代码实现的输出:

enter image description here

请记住,您使用的字体必须是等宽字体,否则对齐方式将由于字符之间的可变间距而变得混乱(这会延长字符串的长度)。

答案 8 :(得分:-1)