如何在列表框中显示两列?
答案 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));
我自己的以下代码实现的输出:
请记住,您使用的字体必须是等宽字体,否则对齐方式将由于字符之间的可变间距而变得混乱(这会延长字符串的长度)。
答案 8 :(得分:-1)