2

Windows フォーム アプリケーションに UltraGrid があり、2 つのバンドが必要です。以下のコードを使用して、親バンドを問題なくセットアップできました。

        Try
            con.Open()
            da = New SqlDataAdapter("SELECT o.OJTID, o.Surname + ', ' + o.FirstName + ' ' + o.MiddleName AS FullName, t.TotalGrade FROM tblOJTs o INNER JOIN tblTGrades t ON o.OJTID = t.OJTID", con)
            da.Fill(ds, "tblOGrades")
            con.Close()
        Catch ex As Exception
            MsgBox("Error connecting to databe.", MsgBoxStyle.Critical)
            MsgBox(ex.ToString)
            con.Close()
            Exit Sub
        End Try

        UltraGrid1.DisplayLayout.ViewStyle = Infragistics.Win.UltraWinGrid.ViewStyle.MultiBand
        UltraGrid1.DataSource = ds.Tables("tblOGrades")

問題は、子バンドのデータソースを設定する方法がわかりません。Hierarchical DataSource 機能があるため、UltraWebGrid でこのような問題に遭遇することはありませんが、WinForms では利用できないと思います。私はあなたたちが前もって助けてくれることを知っています:)

4

1 に答える 1

4

DataSet 内の別の DataTable に、最初のテーブルに関連するデータを入力する必要があります。その後、2 つのデータブル間の関係を定義し、最後に UltraWinGrid の DataSource を単一の DataTable ではなく DataSet 自体に設定する必要があります。

例えば:

con.Open()
da = New SqlDataAdapter("SELECT o.OJTID, o.Surname ....", con)
da.Fill(ds, "tblOGrades")
da = new SqlDataAdapter("SELECT .related data....", con)
da.Fill(ds, "tblRelated")
ds.Relations.Add("Grades_Relation", _
   ds.Tables("tblOGrades").Columns("OJTID"), _
   ds.Tables("tblRelated").Columns("relatedID"))
con.Close()

....

UltraGrid1.DataSource = ds
于 2013-03-09T18:22:36.833 に答える