Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
210
Problems dynamically adding bands to WHDG
posted

Hi all, 

 

I've been stuck for a while trying to setup our WHDG. We have a dynamic, changing, dataset object coming back from our databases. This can have N relationships and tables in it. We must create the bands manually so that we can hide columns and format the display.

Note: If I set the grid to auto create the bands, it works fine but the display is no good for our needs.

However, if I try to create a band for each dataTable in the set then the 2nd level + band I create are not used.

Also, if I create the bands manually but leave AutoGenerateBands="True" then the 2nd level band has no formatting.

 

Is there some way I can view the auto generated bands in code? If so then maybe I could see what was wrong with my setup.

 

This is the function I used to setup the bands:

 

 

Protected Overrides Sub OnInit(ByVal e As EventArgs)

Dim i As Integer = 1 ' skip root band/table (this is already setup in the grid)

 

        While i < Me.WHDG1.DataSource.Tables.Count

 

            Dim band As New Infragistics.Web.UI.GridControls.Band

 

            Dim table As New DataTable

 

            table = Me.WHDG1.DataSource.Tables(i)

 

 

 

            Me.WHDG1.Bands.Add(band)

 

 

 

            band.DataMember = table.TableName

 

 

 

            band.Key = table.TableName

 

            band.DataKeyFields = "Autoid"

 

 

 

            band.ShowHeader = False

 

            band.AutoGenerateColumns = False

 

 

 

            addDataField("Sel", "Sel", "20", False, "columnClassSel", table, band)

 

            addDataField("Sel1", "Sel", "20", False, "columnClassSel", table, band)

 

            addDataField("Sel2", "Sel", "20", False, "columnClassSel", table, band)

 

            addDataField("Sel3", "Sel", "20", False, "columnClassSel", table, band)

 

            addDataField("Sel4", "Sel", "20", False, "columnClassSel", table, band)

 

            addDataField("Sel5", "Sel", "20", False, "columnClassSel", table, band)

 

            addDataField("Sel6", "Sel", "20", False, "columnClassSel", table, band)

 

 

 

            addDataField("display", "display", "", False, "", table, band)

 

            addDataField("Available", "Available", "70", False, "columnClassAvailable", table, band)

 

 

 

            addDataField("name", "name", "", True, "", table, band)

 

            addDataField("parenttable", "parenttable", "", True, "", table, band)

 

            addDataField("parentkey", "parentkey", "", True, "", table, band)

 

            addDataField("childtable", "childtable", "", True, "", table, band)

 

            addDataField("level", "level", "", True, "", table, band)

 

            addDataField("filter", "filter", "", True, "", table, band)

 

            addDataField("incex", "incex", "", True, "", table, band)

 

            addDataField("tbl", "tbl", "", True, "", table, band)

 

            addDataField("bandkey", "bandkey", "", True, "", table, band)

 

            i = i + 1

        End While

 

 

 Private Sub addDataField(ByVal fieldName As String, ByVal key As String, ByVal width As String, ByVal hidden As Boolean, ByVal cssClass As String, ByRef table As DataTable, ByRef band As Infragistics.Web.UI.GridControls.Band)

        If table.Columns.Contains(fieldName) Then

            Dim dataField As Infragistics.Web.UI.GridControls.BoundDataField = New Infragistics.Web.UI.GridControls.BoundDataField

 

            dataField.DataFieldName = fieldName

            dataField.Key = fieldName

            dataField.Hidden = hidden

            dataField.CssClass = cssClass

 

            If Not width = "" Then

                dataField.Width = width

            End If

 

            band.Columns.Add(dataField)

        End If

    End Sub

Parents
No Data
Reply
  • 275
    posted

    I am having similar issues.  There are about a dozen different ways to bind the grid and I've tried them all twice.  It seems that no matter what I do to format anything with the grid prior to binding is completely ignored.  If I set autogeneratecolumns=false, then the grid is blank.  I've tried the ThreeLevelsonManualLoad example, creating my webhierarchicaldatasource inline and the code behind, binding to a relational dataset....all of them will create the grid with a parent/child band as expected, but if I try to set column width or change a caption prior to binding, its ignored.  We have the exact same code in the webdatagrid and it works correctly.  Is this a bug with the webhierarchicalgrid?

Children