Frage

Wie kann ich in einem Listenfeld zwei Spalten angezeigt werden?

War es hilfreich?

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top