Skip to content

Replies

0
Vella
Vella answered on Sep 9, 2010 7:06 AM

Lyuba,

I followed your steps to create the webhierarchical grid, but I cannot see the arrows for the top level rows. I am not sure why? Can you please help me. I am using the assembly "Infragistics35.Web.v9.2, Version=9.2.20092.1003".

Here is my aspx code:

<asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <ig:WebHierarchicalDataGrid DataKeyFields="FinStmtGroup"
                                    ID="WebHierarchicalDataGrid1"
                                    runat="server"
                                    Height="350px"
                                    Width="90%"
                                    OnInitializeRow="WebHierarchicalDataGrid1_InitializeRow"
                                    OnPreRender="WebHierarchicalDataGrid1_PreRender"
                                    OnRowIslandsPopulating="WebHierarchicalDataGrid1_RowIslandsPopulating"
                                    >
        </ig:WebHierarchicalDataGrid>

And here is my aspx.vb file code:

Protected Sub WebHierarchicalDataGrid1_InitializeRow(ByVal sender As Object, ByVal e As Infragistics.Web.UI.GridControls.RowEventArgs) Handles WebHierarchicalDataGrid1.InitializeRow
        ' don't show the arrow for the last level
        If DirectCast(e.Row, ContainerGridRecord).Level < 2 Then
            DirectCast(e.Row, ContainerGridRecord).IsEmptyParent = True
        End If
    End Sub

    Protected Sub WebHierarchicalDataGrid1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebHierarchicalDataGrid1.PreRender
        If Not IsPostBack Then
            For Each row As ContainerGridRecord In WebHierarchicalDataGrid1.GridView.Rows
                row.IsEmptyParent = True
            Next
        End If
    End Sub

    Protected Sub WebHierarchicalDataGrid1_RowIslandsPopulating(ByVal sender As Object, ByVal e As Infragistics.Web.UI.GridControls.ContainerRowCancelEventArgs) Handles WebHierarchicalDataGrid1.RowIslandsPopulating
        'Cancel the default automatic load on demand operation
        e.Cancel = True
        Select Case e.Row.Level
            Case 0
                BindSecondLevel(e)
                Exit Select
            Case 1
                BindThirdLevel(e)
                Exit Select
        End Select
    End Sub

    Private Sub BindGrid()
        Dim Conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("").ConnectionString)
        Dim Cmd As SqlCommand = New SqlCommand()
        Cmd.Connection = Conn
        Dim paramBrID As SqlParameter = New SqlParameter
        Dim paramStratDt As SqlParameter = New SqlParameter
        Dim parmStopDt As SqlParameter = New SqlParameter
        Dim paramFinStmtGroup As SqlParameter = New SqlParameter
        Dim paramLoanNo As SqlParameter = New SqlParameter
        Dim paramLoanOfficer As SqlParameter = New SqlParameter
        Dim paramVendor As SqlParameter = New SqlParameter
        Dim paramGridLevel As SqlParameter = New SqlParameter

        Try

       
            Conn.Open()
            Cmd.CommandText = "dbo.SelectAMBTransactionsProc"
            Cmd.CommandType = CommandType.StoredProcedure

            With paramBrID
                .ParameterName = "@BrID"
                .Direction = ParameterDirection.Input
                .SqlDbType = SqlDbType.Int
            End With
            'paramBrID.Value = Session("BrID")
            paramBrID.Value = 1
            Cmd.Parameters.Add(paramBrID)

            With paramStratDt
                .ParameterName = "@StartDt"
                .Direction = ParameterDirection.Input
                .SqlDbType = SqlDbType.DateTime
            End With
            paramStratDt.Value = "01/01/2010"
            Cmd.Parameters.Add(paramStratDt)

            With parmStopDt
                .ParameterName = "@StopDt"
                .Direction = ParameterDirection.Input
                .SqlDbType = SqlDbType.DateTime
            End With
            parmStopDt.Value = "09/01/2010"
            Cmd.Parameters.Add(parmStopDt)

            With paramFinStmtGroup
                .ParameterName = "@FinStmtGroup"
                .Direction = ParameterDirection.Input
                .SqlDbType = SqlDbType.VarChar
            End With
            paramFinStmtGroup.Value = "ALL"
            Cmd.Parameters.Add(paramFinStmtGroup)

            With paramLoanNo
                .ParameterName = "@LoanNo"
                .Direction = ParameterDirection.Input
                .SqlDbType = SqlDbType.VarChar
            End With
            paramLoanNo.Value = DBNull.Value
            Cmd.Parameters.Add(paramLoanNo)

            With paramLoanOfficer
                .ParameterName = "@LoanOfficer"
                .Direction = ParameterDirection.Input
                .SqlDbType = SqlDbType.VarChar
            End With
            paramLoanOfficer.Value = "ALL"
            Cmd.Parameters.Add(paramLoanOfficer)

            With paramVendor
                .ParameterName = "@vendor"
                .Direction = ParameterDirection.Input
                .SqlDbType = SqlDbType.VarChar
            End With
            paramVendor.Value = "Roger"
            Cmd.Parameters.Add(paramVendor)

            With paramGridLevel
                .ParameterName = "@GridLevel"
                .Direction = ParameterDirection.Input
                .SqlDbType = SqlDbType.SmallInt
            End With
            paramGridLevel.Value = 1
            Cmd.Parameters.Add(paramGridLevel)

            Dim _DataSet As New DataSet()
            Dim _DataAdapter As SqlDataAdapter

            _DataAdapter = New SqlDataAdapter(Cmd)
            _DataAdapter.Fill(_DataSet, "FirstLevelDataTable")
            
            WebHierarchicalDataGrid1.DataSource = _DataSet
            WebHierarchicalDataGrid1.DataBind()
        Catch ex As Exception

        End Try
    End Sub

    Private Sub BindSecondLevel(ByVal e As Infragistics.Web.UI.GridControls.ContainerRowCancelEventArgs)
       

        ' Get the data key
        Dim _FinStmtGroup As String = e.Row.DataKey(0)

        Dim Conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("").ConnectionString)
        Dim Cmd As SqlCommand = New SqlCommand()
        Cmd.Connection = Conn
        Dim paramBrID As SqlParameter = New SqlParameter
        Dim paramStratDt As SqlParameter = New SqlParameter
        Dim parmStopDt As SqlParameter = New SqlParameter
        Dim paramFinStmtGroup As SqlParameter = New SqlParameter
        Dim paramLoanNo As SqlParameter = New SqlParameter
        Dim paramLoanOfficer As SqlParameter = New SqlParameter
        Dim paramVendor As SqlParameter = New SqlParameter
        Dim paramGridLevel As SqlParameter = New SqlParameter

        Conn.Open()
        Cmd.CommandText = "dbo.SelectAMBTransactionsProc"
        Cmd.CommandType = CommandType.StoredProcedure

        With paramBrID
            .ParameterName = "@BrID"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.Int
        End With
        'paramBrID.Value = Session("BrID")
        paramBrID.Value = 1
        Cmd.Parameters.Add(paramBrID)

        With paramStratDt
            .ParameterName = "@StartDt"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.DateTime
        End With
        paramStratDt.Value = "01/01/2010"
        Cmd.Parameters.Add(paramStratDt)

        With parmStopDt
            .ParameterName = "@StopDt"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.DateTime
        End With
        parmStopDt.Value = "09/01/2010"
        Cmd.Parameters.Add(parmStopDt)

        With paramFinStmtGroup
            .ParameterName = "@FinStmtGroup"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.VarChar
        End With
        paramFinStmtGroup.Value = _FinStmtGroup
        Cmd.Parameters.Add(paramFinStmtGroup)

        With paramLoanNo
            .ParameterName = "@LoanNo"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.VarChar
        End With
        paramLoanNo.Value = "All"
        Cmd.Parameters.Add(paramLoanNo)

        With paramLoanOfficer
            .ParameterName = "@LoanOfficer"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.VarChar
        End With
        paramLoanOfficer.Value = DBNull.Value
        Cmd.Parameters.Add(paramLoanOfficer)

        With paramVendor
            .ParameterName = "@vendor"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.VarChar
        End With
        paramVendor.Value = "Roger"
        Cmd.Parameters.Add(paramVendor)

        With paramGridLevel
            .ParameterName = "@GridLevel"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.SmallInt
        End With
        paramGridLevel.Value = 2
        Cmd.Parameters.Add(paramGridLevel)

        Dim _DataSet As New DataSet()
        Dim _DataAdapter As SqlDataAdapter

        _DataAdapter = New SqlDataAdapter(Cmd)
        _DataAdapter.Fill(_DataSet, "SecondLevelDataTable")

        ' Create Container Grid
        Dim childGrid As New ContainerGrid()
        e.Row.RowIslands.Add(childGrid)

        ' Bind Grid
        childGrid.DataKeyFields = "FinStmtGroup"
        childGrid.Level = 1
        childGrid.DataSource = _DataSet
        childGrid.DataBind()

    End Sub

    Private Sub BindThirdLevel(ByVal e As Infragistics.Web.UI.GridControls.ContainerRowCancelEventArgs)

        ' Get the data key
        Dim _FinStmtGroup As String = e.Row.DataKey(0)

        Dim Conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("").ConnectionString)
        Dim Cmd As SqlCommand = New SqlCommand()
        Cmd.Connection = Conn
        Dim paramBrID As SqlParameter = New SqlParameter
        Dim paramStratDt As SqlParameter = New SqlParameter
        Dim parmStopDt As SqlParameter = New SqlParameter
        Dim paramFinStmtGroup As SqlParameter = New SqlParameter
        Dim paramLoanNo As SqlParameter = New SqlParameter
        Dim paramLoanOfficer As SqlParameter = New SqlParameter
        Dim paramVendor As SqlParameter = New SqlParameter
        Dim paramGridLevel As SqlParameter = New SqlParameter

        Conn.Open()
        Cmd.CommandText = "dbo.SelectAMBTransactionsProc"
        Cmd.CommandType = CommandType.StoredProcedure

        With paramBrID
            .ParameterName = "@BrID"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.Int
        End With
        'paramBrID.Value = Session("BrID")
        paramBrID.Value = 1
        Cmd.Parameters.Add(paramBrID)

        With paramStratDt
            .ParameterName = "@StartDt"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.DateTime
        End With
        paramStratDt.Value = "01/01/2010"
        Cmd.Parameters.Add(paramStratDt)

        With parmStopDt
            .ParameterName = "@StopDt"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.DateTime
        End With
        parmStopDt.Value = "09/01/2010"
        Cmd.Parameters.Add(parmStopDt)

        With paramFinStmtGroup
            .ParameterName = "@FinStmtGroup"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.VarChar
        End With
        paramFinStmtGroup.Value = _FinStmtGroup
        Cmd.Parameters.Add(paramFinStmtGroup)

        With paramLoanNo
            .ParameterName = "@LoanNo"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.VarChar
        End With
        paramLoanNo.Value = "All"
        Cmd.Parameters.Add(paramLoanNo)

        With paramLoanOfficer
            .ParameterName = "@LoanOfficer"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.VarChar
        End With
        paramLoanOfficer.Value = DBNull.Value
        Cmd.Parameters.Add(paramLoanOfficer)

        With paramVendor
            .ParameterName = "@vendor"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.VarChar
        End With
        paramVendor.Value = "Roger"
        Cmd.Parameters.Add(paramVendor)

        With paramGridLevel
            .ParameterName = "@GridLevel"
            .Direction = ParameterDirection.Input
            .SqlDbType = SqlDbType.SmallInt
        End With
        paramGridLevel.Value = 3
        Cmd.Parameters.Add(paramGridLevel)

        Dim _DataSet As New DataSet()
        Dim _DataAdapter As SqlDataAdapter

        _DataAdapter = New SqlDataAdapter(Cmd)
        _DataAdapter.Fill(_DataSet, "ThirdLevelDataTable")

        ' Create Container Grid
        Dim childGrid As New ContainerGrid()
        e.Row.RowIslands.Add(childGrid)

        ' Bind Grid
        childGrid.DataKeyFields = "FinStmtGroup"
        childGrid.Level = 2
        childGrid.DataSource = _DataSet
        childGrid.DataBind()

    End Sub