使用DataGridView中的数据填充列表框

时间:2014-06-15 22:01:33

标签: vb.net datagridview listbox

我有两张表格。表格A有一个列表框和一个组合框。表单B有一个DataGridView。在我的A中,我的组合框用于表示任务的组。例如收件箱,重要等等。每当我从comobobox中选择一个项目时,例如我选择"收件箱" DataGridViewer将对所有包含" Inbox"的行进行排序。在其中一列中。一切正常。我可以查看已排序的数据。

要将我的数据加载到我使用的DataGridView中:

Dim ds As DataSet
Dim dataset1 As New DataSet("datasetTasks")
Dim table1 As New DataTable("tableTask")
Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ds = CreateDataset()
    frm_Tasks.DataGridView1.DataSource = ds.Tables("tableTask")
    LoadFromXMLfile("C:\Users\Beta4K\Documents\Tasks.FILE")
    For Each dr As DataRow In ds.Tables(0).Rows
        ListBox1.Items.Add(dr("TaskName").ToString())
    Next
End Sub
Private Sub LoadFromXMLfile(filename As String)
    If System.IO.File.Exists(filename) Then
        Dim xmlSerializer As XmlSerializer = New XmlSerializer(ds.GetType)
        Dim readStream As FileStream = New FileStream(filename, FileMode.Open)
        ds = CType(xmlSerializer.Deserialize(readStream), DataSet)
        readStream.Close()
        frm_Tasks.DataGridView1.DataSource = ds.Tables("tableTask")
    Else
        MsgBox("file not found! add data and press save button first.", MsgBoxStyle.Exclamation, "")
    End If
End Sub
Private Function CreateDataset() As DataSet
    table1.Columns.Add("TaskID")
    table1.Columns.Add("TaskName")
    table1.Columns.Add("TaskMessage")
    table1.Columns.Add("TaskDate")
    table1.Columns.Add("TaskTime")
    table1.Columns.Add("TaskGroup")
    dataset1.Tables.Add(table1)
    Return dataset1
End Function

这是我的Combobox代码:

    ListBox1.Items.Clear()
    Dim dv As New DataView(ds.Tables("tableTask"))
    dv.RowFilter = "TaskGroup = '" + ComboBox1.SelectedItem + "'"
    frm_Tasks.DataGridView1.DataSource = dv.ToTable("tableTask")
    For Each dr As DataRow In ds.Tables(0).Rows
        ListBox1.Items.Add(dr("TaskName").ToString())
    Next

这意味着它清除列表框,然后通过读取DataGridViewer中的所有数据将项重新加载到列表框中。由于它已经排序了所有它必须做的是添加项目,但它没有。相反,它只是添加所有项目而不管过滤器。

有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

在需要循环数据视图时循环数据表

For Each dr As DataRowView In dv
    ListBox1.Items.Add(dr("TaskName").ToString())
Next