Mehrere Spalten in Listenfeld-Steuerelement
-
27-09-2019 - |
Frage
Wie kann ich in einem Listenfeld zwei Spalten angezeigt werden?
Lösung
Ein Listenfeld wurde nicht mehrspaltigen Daten entwickelt, um anzuzeigen. Auch wird die Windows Forms-Version nicht direkt diese Art von Datenanzeige unterstützen.
Ihre Anforderungen sind nicht klar, aber der einfachste Weg, einen Grid Kontrolle. Es gibt Ihnen eine Vielzahl von Funktionen aus der Box, und man kann es sehr leicht, um weitere Spalten zu erweitern. Wenn Sie mehr Kontrolle über das Aussehen oder die Funktionalität benötigen, können Sie eine Datalist statt.
, um die Scrollen Fähigkeit zu erhalten, können Sie entweder einen Scrolling <div>
oder einfach nur die Paginierung Mechanismus des Gridview verwenden, wenn das angemessen ist.
Andere Tipps
Sie können es in einer Reihe aufstellen, als ob die Daten in zwei Spalten war
new ListItem("blah1".PadRight(10, ' ') + "blah2");
wie hier gezeigt: http: / /articles.dotheweb.net/post/Formatting-columns-in-a-ListBox-of-ComboBox.aspx
Auch können Sie Ihre eigene mit einem Datalist rollen könnte.
Sieht aus wie Sie sollten Ihre eigene Kontrolle schreiben, oder Sie können die Listview-Steuerelement verwenden.
Verwendung der Listenansicht ist perfekte Alternative für mehrspaltigen Listenfeld
Wenn Sie in einer ListBox Spalten verwenden möchten, müssen Sie es tun, basierend auf Ausrichtung.
Zum Beispiel:
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));
Ausgabe meiner eigenen Implementierung dieses Codes unter:
Beachten Sie die Schriftart, die Sie verwenden, hat eine proportionale Schrift sein, da sonst die Ausrichtung Willen vermasseln durch variable Abstand zwischen den Zeichen (und dies übertreibt, je länger die Zeichenfolge ist).
Wie Nick Craver bereits kommentiert hat, ist die Listview wahrscheinlich nicht die richtige Steuerung für mehrspaltige Informationen.
Statt der Liste des Hacker zu erscheinen, wenn es zwei Spalten hat, könnte es eine bessere Idee, einen Datagridview . Es wird leichter zu Setup, das Format und Ihre Daten werden in einer viel flexibleren Art und Weise gehalten werden.
DataGridViews unterstützen auch Listen von Objekten zuweisen als Datenquellen , wenn das macht die Sache einfacher.
Wenn ich richtig verstanden habe, wollen Sie eine Datenspalte horizontal angezeigt werden soll. Dies kann durch die Verwendung eines DataList
und hat RepeatDirection
auf „Hozizontal“ mit den angegebenen Wiederholungs Spalten acheived werden.
Zum Beispiel:
<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" CellSpacing="10" >
Mehrere Elemente nebeneinander sind möglich, wenn Sie das Toolkit verweisen und die wrapPanelOrientation hinzufügen;) es wird aussehen Liste
1stItem 2ndItem
3rdItem 4thItem .. ect..
ListBox.ItemsPanel>
ItemsPanelTemplate>
toolkit:WrapPanelOrientation="Horizontal"FlowDirection="LeftToRight"ItemWidth="220"ItemHeight="60"/>
/ItemsPanelTemplate>
/ListBox.ItemsPanel>
/ListBox>