我的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。我知道你们会提前帮助谢谢:)
答案 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