This is a migrated thread and some comments may be shown as answers.

Hierarchical grid and stored procedures

1 Answer 107 Views
Grid
This is a migrated thread and some comments may be shown as answers.
mabs
Top achievements
Rank 1
mabs asked on 28 Sep 2011, 04:19 PM
I am currently looking at the following demo,

http://demos.telerik.com/aspnet-ajax/grid/examples/programming/hierarchy/defaultvb.aspx

Which show how to build a hierarchial grid programmaticaly.  The problem I have is that I wish to use a datatable populated from a stored procedure for the grids.  I have tried the following,

Private Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Init
    buildGrid()
End Sub
 
Sub buildGrid()
 
    Dim state As String = drp_state.SelectedValue
    If state = "" Then
        state = 0
    End If
 
    Dim dt As DataTable = myDataAccessClass.data1(param1, param2)
    Datasource = dt
    GridDataKeyNames = "ID"
    ' masterTableCreation builds and adds the columns, no issue with this.
    masterTableCreation()
 
    Dim dtSub As DataTable = myDataAccessClass.data1(param3)
    hierarchyTable(dtSub, "", "ID", "ID")
 
End Sub
 
 
Public Sub hierarchyTable(ByVal dt As DataTable, ByVal datakeys As String, ByVal masterKeyField As String, ByVal detailKeyField As String)
 
 
    Dim hierarchyTable As New GridTableView(RadGrid1)
    ' set the datasouce
    hierarchyTable.DataSource = dt
    hierarchyTable.Width = Unit.Percentage(100)
 
    Dim datakeysArray() As String
    If datakeys <> "" Then
        datakeysArray = datakeys.Split(",".ToArray())
        hierarchyTable.DataKeyNames = datakeysArray
    End If
 
    Dim relationFields As GridRelationFields = New GridRelationFields()
    relationFields.MasterKeyField = masterKeyField
    relationFields.DetailKeyField = detailKeyField
    hierarchyTable.ParentTableRelation.Add(relationFields)
    RadGrid1.MasterTableView.DetailTables.Add(hierarchyTable)
 
    'add columns
    Dim boundColumn As GridBoundColumn
 
    hierarchyTable.Columns.Clear()
 
    For i As Int32 = 0 To Datasource.Columns.Count - 1
        Dim column As DataColumn = Datasource.Columns(i)
 
        Dim colDataType As String = column.DataType.ToString().ToLower().Replace("system.", "")
 
        boundColumn = New GridBoundColumn
        hierarchyTable.Columns.Add(boundColumn)
 
        boundColumn.DataField = column.ColumnName
        boundColumn.HeaderText = column.ColumnName.Replace("_", " ").ToLower()
 
        boundColumn.DataFormatString = "<nobr>{0}</nobr>"
        boundColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Left
 
    Next
 
End Sub



<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" AllowSorting="True" AllowPaging="True" PageSize="5" GridLines="None" ShowGroupPanel="True">
    <MasterTableView AllowMultiColumnSorting="True" GroupLoadMode="Server">
    </MasterTableView>
    <PagerStyle Mode="NextPrevNumericAndAdvanced"></PagerStyle>
    <ClientSettings AllowDragToGroup="true" />
</telerik:RadGrid>


The grid will expand to show the child table, however with no data.  Any pointers would be much appreciated.

1 Answer, 1 is accepted

Sort by
0
mabs
Top achievements
Rank 1
answered on 28 Sep 2011, 05:04 PM
fixed, I needed to add a pagesize to the child table,

hierarchyTable.PageSize = 10
Tags
Grid
Asked by
mabs
Top achievements
Rank 1
Answers by
mabs
Top achievements
Rank 1
Share this question
or