Telerik winforms radgridview分层数据未正确显示

时间:2016-03-04 12:12:42

标签: vb.net winforms telerik radgridview hierarchicaldatatemplate

美好的一天, 我在vb.net winforms vs2013中使用telerik radgridview分层数据。

我遇到了这个问题,我正确地看到了radgridview和第一个gridviewtemplate中的第一个列表,但我没有在第二个gridviewtemplate中看到一个东西。我没有想法,我在这里发布代码,看看是否有人可以帮助我。

Private Function loaddt0() As Data.DataSet
    Dim dt As New Data.DataSet
    dt.Tables.Add("person")
    dt.Tables("person").Columns.Add("personID")
    dt.Tables("person").Columns.Add("personName")
    For i As Integer = 1 To 3
        Dim rw As Data.DataRow
        rw = dt.Tables("person").NewRow
        rw.Item("personID") = i
        rw.Item("personName") = "person" & " - " & i.ToString
        dt.Tables("person").Rows.Add(rw)
    Next
    Return dt
End Function
Private Function loaddt1() As Data.DataSet
    Dim dt As New Data.DataSet
    dt.Tables.Add("project")
    dt.Tables("project").Columns.Add("projectID")
    dt.Tables("project").Columns.Add("projectName")
    dt.Tables("project").Columns.Add("personID")
    dt.Tables("project").Columns.Add("personprojectID")
    Dim rw As Data.DataRow
    rw = dt.Tables("project").NewRow
    rw.Item("projectID") = 1
    rw.Item("projectName") = "Proyect 1"
    rw.Item("personID") = 1
    rw.Item("personprojectID") = "1-1"
    dt.Tables("project").Rows.Add(rw)
    Dim rw1 As Data.DataRow
    rw1 = dt.Tables("project").NewRow
    rw1.Item("projectID") = 2
    rw1.Item("projectName") = "Proyect 2"
    rw1.Item("personID") = 1
    rw1.Item("personprojectID") = "1-2"
    dt.Tables("project").Rows.Add(rw1)
    Dim rw2 As Data.DataRow
    rw2 = dt.Tables("project").NewRow
    rw2.Item("projectID") = 1
    rw2.Item("projectName") = "Proyect 1"
    rw2.Item("personID") = 2
    rw2.Item("personprojectID") = "2-1"
    dt.Tables("project").Rows.Add(rw2)
    Dim rw3 As Data.DataRow
    rw3 = dt.Tables("project").NewRow
    rw3.Item("projectID") = 1
    rw3.Item("projectName") = "Proyect 1"
    rw3.Item("personID") = 3
    rw3.Item("personprojectID") = "3-1"
    dt.Tables("project").Rows.Add(rw3)
    Return dt
End Function
Private Function loaddt2() As Data.DataSet
    Dim dt As New Data.DataSet
    dt.Tables.Add("task")
    dt.Tables("task").Columns.Add("personprojectID")
    dt.Tables("task").Columns.Add("taskID")
    dt.Tables("task").Columns.Add("taskName")
    dt.Tables("task").Columns.Add("personID")
    dt.Tables("task").Columns.Add("personprojecttaskID")
    Dim rw As Data.DataRow
    rw = dt.Tables("task").NewRow
    rw.Item("personprojectID") = "1-1"
    rw.Item("taskID") = 3
    rw.Item("taskName") = "Task 3"
    rw.Item("personID") = 1
    rw.Item("personprojecttaskID") = "1-1-3"
    dt.Tables("task").Rows.Add(rw)
    Dim rw1 As Data.DataRow
    rw1 = dt.Tables("task").NewRow
    rw1.Item("personprojectID") = "1-1"
    rw1.Item("taskID") = 5
    rw1.Item("taskName") = "Task 5"
    rw1.Item("personID") = 1
    rw1.Item("personprojecttaskID") = "1-1-5"
    dt.Tables("task").Rows.Add(rw1)
    Dim rw2 As Data.DataRow
    rw2 = dt.Tables("task").NewRow
    rw2.Item("personprojectID") = "1-1"
    rw2.Item("taskID") = 8
    rw2.Item("taskName") = "Task 8"
    rw2.Item("personID") = 1
    rw2.Item("personprojecttaskID") = "1-1-8"
    dt.Tables("task").Rows.Add(rw2)
    Dim rw3 As Data.DataRow
    rw3 = dt.Tables("task").NewRow
    rw3.Item("personprojectID") = "1-2"
    rw3.Item("taskID") = 6
    rw3.Item("taskName") = "Task 6"
    rw3.Item("personID") = 1
    rw3.Item("personprojecttaskID") = "1-2-6"
    dt.Tables("task").Rows.Add(rw3)
    Dim rw4 As Data.DataRow
    rw4 = dt.Tables("task").NewRow
    rw4.Item("personprojectID") = "2-1"
    rw4.Item("taskID") = 1
    rw4.Item("taskName") = "Task 1"
    rw4.Item("personID") = 1
    rw4.Item("personprojecttaskID") = "2-1-1"
    dt.Tables("task").Rows.Add(rw4)
    Dim rw5 As Data.DataRow
    rw5 = dt.Tables("task").NewRow
    rw5.Item("personprojectID") = "3-1"
    rw5.Item("taskID") = 8
    rw5.Item("taskName") = "Task 8"
    rw5.Item("personID") = 3
    rw5.Item("personprojecttaskID") = "3-1-8"
    dt.Tables("task").Rows.Add(rw5)
    Return dt
End Function
Private Sub load2()
    Dim ldt As Data.DataSet
    ldt = loaddt0()
    rgvtareas.DataSource = ldt.Tables("person").DefaultView
    ldt.Dispose()
    Dim gridviewtemple As New Telerik.WinControls.UI.GridViewTemplate
    Dim ldt2 As Data.DataSet
    ldt2 = loaddt1()
    gridviewtemple.DataSource = ldt2.Tables("project").DefaultView
    ldt2.Dispose()
    Dim ldt3 As Data.DataSet
    ldt3 = loaddt2()
    Dim gridviewtemple2 As New Telerik.WinControls.UI.GridViewTemplate
    gridviewtemple2.DataSource = ldt3.Tables("task").DefaultView
    ldt3.Dispose()
    rgvtareas.MasterTemplate.Templates.Add(gridviewtemple)
    Dim relation As New Telerik.WinControls.UI.GridViewRelation(rgvtareas.MasterTemplate)
    relation.ChildTemplate = gridviewtemple
    relation.RelationName = "PERSONS - PROJECTS"
    relation.ParentColumnNames.Add("personID")
    relation.ChildColumnNames.Add("personID")
    rgvtareas.Relations.Add(relation)
    gridviewtemple.AllowAddNewRow = False
    gridviewtemple.AllowDragToGroup = False
    gridviewtemple.AllowDeleteRow = False
    gridviewtemple.AllowEditRow = False
    gridviewtemple.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill
    'Me.cargaridiomagrv3(gridviewtemple2)
    'Me.dgdarformatogvt(gridviewtemple)
    gridviewtemple.Templates.Add(gridviewtemple2)
    Dim relation2 As New Telerik.WinControls.UI.GridViewRelation(gridviewtemple)
    relation2.ChildTemplate = gridviewtemple2
    relation2.RelationName = "PERSONPROJECTS - TASKS"
    relation2.ParentColumnNames.Add("personprojectID")
    relation2.ChildColumnNames.Add("personprojectID")
    gridviewtemple2.AllowAddNewRow = False
    gridviewtemple2.AllowDragToGroup = False
    gridviewtemple2.AllowDeleteRow = False
    gridviewtemple2.AllowEditRow = False
    gridviewtemple2.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill
    rgvtareas.Refresh()
End Sub

我得到的图像是:

enter image description here

1 个答案:

答案 0 :(得分:0)

您错过了将第二个GridViewRelation添加到控件的Relations集合中。只需在底部添加此行:

rgvtareas.Relations.Add(relation2)