문제

how can i display two columns in a list box?

도움이 되었습니까?

해결책

A list box wasn't designed to display multi-column data. Even the Windows Forms version doesn't directly support that kind of data display.

Your requirements aren't clear, but the simplest way to go would be to use a GridView control. It gives you a lot of functionality out of the box, and you can expand it to more columns very easily. If you need more control over the look or functionality, you can use a DataList instead.

To get the scrolling ability, you can either use a scrolling <div> or simply use the pagination mechanism of the GridView if that's appropriate.

다른 팁

You could line it up as if the data was in 2 columns

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

as shown here: http://articles.dotheweb.net/post/Formatting-columns-in-a-ListBox-of-ComboBox.aspx

Also, you could roll your own with a DataList.

Looks like you should write your own control, or you can use the listview control.

use list view it is perfect alternative for multi column list box

If you want to use columns in a ListBox, you have to do it based on alignment.

For example:

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));  

Output of my own implementation of this code below:

enter image description here

Keep in mind the font you use has to be a monospaced font, otherwise the alignment will mess up due to variable spacing between characters (and this exaggerates the longer the string is).

As Nick Craver has already commented, the ListView probably isn't the right control for multi-column information.

Instead of hacking your list to appear as if it has two columns, it might be a better idea to use a DataGridView. It'll be easier to setup, format, and your data will be held in a much more flexible way.

DataGridViews also support assigning Lists of objects as datasources, if that makes things easier.

If I understood correctly, you want a data column to display horizontal. This can be acheived by using a DataList and have RepeatDirection set to "Hozizontal" with the specified repeat columns. Eg :

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

Multiple items side by side are possible if you reference the toolkit and add the wrapPanelOrientation ;) it will list look like

1stItem      2ndItem

3rdItem      4thItem .. ect..

ListBox.ItemsPanel>

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

/ItemsPanelTemplate>

/ListBox.ItemsPanel>

/ListBox>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top