在UltraGrid中设置子带的数据源

时间:2013-03-09 14:58:05

标签: infragistics

我的Windows窗体应用程序中有一个UltraGrid,它必须有两个波段。通过使用以下代码,我能够毫无问题地设置父带:

        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")

现在的事情是,我不知道如何设置子乐队的数据源。我没有遇到UltraWebGrid的问题,因为Hierarchical DataSource功能,但我认为它不适用于WinForms。我知道你们会提前帮助谢谢:)

1 个答案:

答案 0 :(得分:4)

您需要使用与第一个表相关的数据填充DataSet中的另一个DataTable。之后,您应该定义两个datable之间的关系,最后将UltraWinGrid的DataSource设置为DataSet本身,而不是单个DataTable。

例如:

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