【发布时间】:2014-08-05 17:38:27
【问题描述】:
我有 2 个表格。表单 A 有一个列表框和一个组合框。表单 B 有一个 DataGridView。在我的 A 中,我的组合框旨在代表任务的组。例如收件箱,重要等。所以每当我从组合框中选择一个项目时,例如我选择“收件箱”项,DataGridViewer 将对其中一列中包含“收件箱”的所有行进行排序。这一切都很好。我可以查看排序后的数据。
要将我的数据加载到我使用的 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
这是我的组合框的代码:
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 中的所有数据将项目重新加载到列表框中。由于它已经排序,它所要做的就是添加项目,但它没有。相反,它只是添加所有项目而不考虑过滤器。
谁能帮帮我。
【问题讨论】:
标签: vb.net datagridview listbox