如何在VB.NET web应用程序上为列表框启用多列?

如何在VB.NET web应用程序上为列表框启用多列?,vb.net,web-applications,Vb.net,Web Applications,我想做的是在一个列表框中显示两列,这样用户就有了更多的信息。 填充列表框的方法是使用带有自定义查询的SqlDataSource,然后将该数据源附加到列表框 我的问题是在数据源中,我只能选择两个值,一个用于列表框显示,另一个用于为列表框选择数据字段值 如何在列表框上显示SqlDataSource中的多个列值?首先为数据创建一个类。我添加了一个参数化构造函数,这样就可以很容易地创建一个Coffee,而无需单独设置属性。我还重写了.ToString方法,因此ListBox将显示我想要的内容。如果您真的

我想做的是在一个列表框中显示两列,这样用户就有了更多的信息。 填充列表框的方法是使用带有自定义查询的SqlDataSource,然后将该数据源附加到列表框

我的问题是在数据源中,我只能选择两个值,一个用于列表框显示,另一个用于为列表框选择数据字段值


如何在列表框上显示SqlDataSource中的多个列值?

首先为数据创建一个类。我添加了一个参数化构造函数,这样就可以很容易地创建一个Coffee,而无需单独设置属性。我还重写了.ToString方法,因此ListBox将显示我想要的内容。如果您真的想要列,您可以将填充设置为设置的长度

Public Class Coffee
    Public Property Name As String
    Public Property Type As String
    Public Sub New(cofName As String, cofType As String)
        Name = cofName
        Type = cofType
    End Sub
    Public Overrides Function ToString() As String
        Return $"{Name}, {Type}"
    End Function
End Class
要填充列表,请创建一个新咖啡并将其添加到列表中

Private CoffeeList As New List(Of Coffee)

Private Sub FillCoffeeList()
    Using cn As New SqlConnection(My.Settings.CoffeeConnection),
            cmd As New SqlCommand("Select Top 10 Name, Type From Coffees;", cn)
        cn.Open()
        Using reader = cmd.ExecuteReader
            While reader.Read
                Dim c As New Coffee(reader.GetString(0), reader.GetString(1))
                CoffeeList.Add(c)
            End While
        End Using
    End Using
End Sub
然后在页面中加载

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        FillCoffeeList()
        ListBox1.DataSource = CoffeeList
        ListBox1.DataBind()
    End If
End Sub
ListBox在CoffeeList中的每个Coffee对象上调用.ToString,并显示我们在类中确定的内容