2014-06-15 2 views
0

2 가지 형식이 있습니다. 양식 A에는 목록 상자와 콤보 박스가 있습니다. 양식 B에는 DataGridView가 있습니다. 내 A에서 내 콤보 상자는 작업을위한 그룹을 나타 내기위한 것입니다. 예 : 받은 편지함, 중요 등. 그래서 내가 comobobox에서 항목을 선택할 때마다. "받은 편지함"항목을 선택하면 DataGridViewer는 열 중 하나에서 "받은 편지함"이 포함 된 모든 행을 정렬합니다. 이 모든 것이 잘 작동합니다. 정렬 된 데이터를 볼 수 있습니다. 다음은 목록 상자를 지 웁니다이다이가 할 의미가 무엇DataGridView의 데이터로 목록 상자 채우기

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 

하고, 다음은 내 콤보 상자에 대한 코드의

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 

:

은 내가 사용하는있는 DataGridView에 내 데이터를로드하려면 DataGridViewer의 모든 데이터를 읽지 않고 항목을 목록 상자로 다시로드합니다. 이미 정렬 되었기 때문에 항목을 추가하는 것 외에는 수행하지 않아도됩니다. 대신 필터에 관계없이 모든 항목을 추가합니다.

누군가 나를 도울 수 있습니까? DataTable의 이상

답변

1

당신 루프 당신은

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

당신을 감사합니다 DataView를 반복 할 필요가있는 동안! 완벽하게 작동합니다. – Zer0

관련 문제