Question

Comment puis-je afficher deux colonnes dans une zone de liste?

Était-ce utile?

La solution

Une zone de liste n'a pas été conçu pour afficher des données à plusieurs colonnes. Même Windows Forms version ne supporte pas directement ce type d'affichage des données.

Vos besoins ne sont pas claires, mais le moyen le plus simple d'aller serait d'utiliser un contrôle de GridView. Il vous donne beaucoup de fonctionnalités hors de la boîte, et vous pouvez l'étendre à plusieurs colonnes très facilement. Si vous avez besoin d'un plus grand contrôle sur l'apparence ou la fonctionnalité, vous pouvez utiliser un DataList à la place.

Pour obtenir la capacité de défilement, vous pouvez soit utiliser un <div> défilement ou simplement utiliser le mécanisme de pagination du GridView si c'est approprié.

Autres conseils

Vous pourriez l'aligner comme si les données dans 2 colonnes

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

comme indiqué ici: http: / /articles.dotheweb.net/post/Formatting-columns-in-a-ListBox-of-ComboBox.aspx

En outre, vous pouvez rouler votre propre avec un DataList.

On dirait que vous devez écrire votre propre contrôle, ou vous pouvez utiliser le contrôle ListView.

utilisation de liste est une alternative parfaite pour la zone de liste de plusieurs colonnes

Si vous voulez utiliser des colonnes dans une zone de liste, vous devez le faire en fonction de l'alignement.

Par exemple:

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

Sortie de ma propre mise en œuvre de ce code ci-dessous:

Gardez à l'esprit la police que vous utilisez doit être une police monospaced, sinon le désordre de la volonté d'alignement en raison de l'espacement variable entre les caractères (et ce plus la exagère chaîne est).

Comme Nick Craver a déjà commenté, le ListView est probablement pas le droit de contrôle de l'information à plusieurs colonnes.

Au lieu de piratage de votre liste apparaisse comme si elle a deux colonnes, il pourrait être une meilleure idée d'utiliser un DataGridView . Il sera plus facile à installer, le format et vos données seront conservées d'une manière beaucoup plus souple.

DataGridViews soutiennent également attribution des listes d'objets comme sources de données , si cela rend les choses plus faciles.

Si je comprends bien, vous voulez une colonne de données pour afficher horizontale. Cela peut être acheived en utilisant un DataList et ont RepeatDirection réglé sur « Hozizontal » avec les colonnes répétées spécifiées. Par exemple:

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

côté Plusieurs éléments côte à côte sont possibles si vous faites référence à la boîte à outils et ajoutez le wrapPanelOrientation;) il liste ressembler

1stItem      2ndItem

3rdItem      4thItem .. ect..

ListBox.ItemsPanel>

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

/ItemsPanelTemplate>

/ListBox.ItemsPanel>

/ListBox>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top