Hello,
I am currently using Version 19.1.20191.231. The dataset is returning just a little over 1,800 rows with 3 bands. I have paging turned on set at 10 rows per page. Expanding the child bands or changing pages takes at least 15 to 30 seconds or more no matter how many rows are in the child bands.
Also, when using the WebExcelExporter with this grid, I have to set the ExpandAll property to get export the entire grid with the DataExportMode set to 'AllDataInDataSouce' and that takes a about 5 minutes or more to complete.
I would appreciate any help or tips on speeding this up.
Markup below:
<asp:SqlDataSource ID="dsGridParent" runat="server" ConnectionString="<%$ ConnectionStrings:CHPCOMSDB %>" SelectCommand="usp_Examiner_Call_Routing_Parent" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:ControlParameter ControlID="dpBeginDate" DbType="Date" Name="Begin_Date" PropertyName="Value" /> <asp:ControlParameter ControlID="dpEnDate" DbType="Date" Name="End_Date" PropertyName="Value" /> <asp:ControlParameter ControlID="hdnExamninerID" DefaultValue="" Name="Examiner_ID" PropertyName="Value" Type="String" /> <asp:ControlParameter ControlID="hdnManagerID" Name="Manager_ID" PropertyName="Value" Type="String" /> <asp:ControlParameter ControlID="ckMyTeam" DefaultValue="" Name="Just_My_Team" PropertyName="Checked" Type="Boolean" /> </SelectParameters> </asp:SqlDataSource> <asp:SqlDataSource ID="dsGridChild" runat="server" ConnectionString="<%$ ConnectionStrings:CHPCOMSDB %>" SelectCommand="usp_Examiner_Call_Routing_Child" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:ControlParameter ControlID="dpBeginDate" DbType="Date" Name="Begin_Date" PropertyName="Value" /> <asp:ControlParameter ControlID="dpEnDate" DbType="Date" Name="End_Date" PropertyName="Value" /> <asp:ControlParameter ControlID="hdnExamninerID" Name="Examiner_ID" PropertyName="Value" Type="String" /> <asp:ControlParameter ControlID="hdnManagerID" Name="Manager_ID" PropertyName="Value" Type="String" /> <asp:ControlParameter ControlID="ckMyTeam" DefaultValue="" Name="Just_My_Team" PropertyName="Checked" Type="Boolean" /> </SelectParameters> </asp:SqlDataSource> <asp:SqlDataSource ID ="dsGridGrandChild" runat="server" ConnectionString="<%$ ConnectionStrings:CHPCOMSDB %>" SelectCommand="usp_Examiner_Call_Routing_GrandChild" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:ControlParameter ControlID="dpBeginDate" DbType="Date" Name="Begin_Date" PropertyName="Value" /> <asp:ControlParameter ControlID="dpEnDate" DbType="Date" Name="End_Date" PropertyName="Value" /> <asp:ControlParameter ControlID="hdnExamninerID" DefaultValue="" Name="Examiner_ID" PropertyName="Value" Type="String" /> <asp:ControlParameter ControlID="hdnManagerID" Name="Manager_ID" PropertyName="Value" Type="String" /> <asp:ControlParameter ControlID="ckMyTeam" DefaultValue="" Name="Just_My_Team" PropertyName="Checked" Type="Boolean" /> </SelectParameters> </asp:SqlDataSource> <ig:WebHierarchicalDataSource ID="WebHierarchicalDataSource1" runat="server"> <DataViews> <ig:DataView ID="dsGridParent_DefaultView" DataMember="DefaultView" DataSourceID="dsGridParent" /> <ig:DataView ID="dsGridChild_DefaultView" DataMember="DefaultView" DataSourceID="dsGridChild" /> <ig:DataView ID="dsGridGrandChild_DefaultView" DataMember="DefaultView" DataSourceID="dsGridGrandChild" /> </DataViews> <DataRelations> <ig:DataRelation ChildColumns="Examiner" ChildDataViewID="dsGridChild_DefaultView" ParentColumns="Examiner" ParentDataViewID="dsGridParent_DefaultView" /> <ig:DataRelation ChildColumns="Examiner,Call_Type" ChildDataViewID="dsGridGrandChild_DefaultView" ParentColumns="Examiner,Call_Type" ParentDataViewID="dsGridChild_DefaultView" /> </DataRelations> </ig:WebHierarchicalDataSource>
<ig:WebHierarchicalDataGrid ID="WebHierarchicalDataGrid1" runat="server" Height="650px" Width="100%" AutoGenerateBands="False" AutoGenerateColumns="False" DataKeyFields="Examiner" DataMember="dsGridParent_DefaultView" DataSourceID="WebHierarchicalDataSource1" Key="dsGridParent_DefaultView" StyleSetName="RubberBlack"> <Bands> <ig:Band AutoGenerateColumns="False" DataKeyFields="Examiner,Call_Type" DataMember="dsGridChild_DefaultView" Key="dsGridChild_DefaultView"> <Bands> <ig:Band AutoGenerateColumns="False" DataMember="dsGridGrandChild_DefaultView" Key="dsGridGrandChild_DefaultView" DefaultColumnWidth="200px"> <Columns> <ig:BoundDataField DataFieldName="Examiner" Hidden="True" Key="Examiner"> <Header Text="Examiner"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="Call_Type" Hidden="True" Key="Call_Type"> <Header Text="Call_Type"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="claimid" Key="claimid"> <Header Text="Claim ID"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="Claim_Status" Key="Claim_Status"> <Header Text="Status"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="Provider" Key="Provider"> <Header Text="Provider"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="Date_Adjudicated" Key="Date_Adjudicated"> <Header Text="Date Adjudicated"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="Ok_to_Pay_Date" Key="Ok_to_Pay_Date"> <Header Text="Ok Pay Date"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="OK_to_Pay_By" Key="OK_to_Pay_By"> <Header Text="OK Pay By"> </Header> </ig:BoundDataField> </Columns> <Behaviors> <ig:Paging PageSize="10"> </ig:Paging> <ig:RowSelectors RowNumbering="True"> </ig:RowSelectors> <ig:ColumnResizing> </ig:ColumnResizing> </Behaviors> </ig:Band> </Bands> <Columns> <ig:BoundDataField DataFieldName="Examiner" Hidden="True" Key="Examiner"> <Header Text="Examiner"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="Call_Type" Key="Call_Type"> <Header Text="Call Type"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="No_of_Claims" Key="No_of_Claims" DataFormatString="{0:#,#0}"> <Header Text="Claims"> </Header> </ig:BoundDataField> </Columns> <Behaviors> <ig:ColumnResizing> </ig:ColumnResizing> </Behaviors> </ig:Band> </Bands> <Columns> <ig:BoundDataField DataFieldName="Examiner" Key="Examiner"> <Header Text="Examiner"> </Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="No_of_Claims" Key="No_of_Claims" DataFormatString="{0:#,#0}"> <Header Text="Claims"> </Header> </ig:BoundDataField> </Columns> <Behaviors> <ig:ColumnResizing> </ig:ColumnResizing> </Behaviors> </ig:WebHierarchicalDataGrid>
Thank you for contacting us. May I ask you to send me the exact data that you are using, these are the steps to retrieve schema + data from database:
1. Right click on the DataBase (testDb for example).2. Select "Tasks".3. Select "Generate Script".4. Click "Next" press radio button "Select specific database object"5. And Select two tables "RMADtl" and "CrdOrdCde".6. Click Next button and select "Advanced" button.7. From there find "Types of data to script" and change the value not to be "Schema only" but "Schema and data".8. Press "Ok" -> "Next" and "Finish".
Performance depends on the type of data source that you are using. In your case with SqlDatSource sorting and other data operations are delegated to the data source, for in-memory arrays the grid will do the routine, which will be a little bit slower. I've done some tests with the WebHierarchicalDataGrid bound to a sql table with 1,000,000, using a page size of 50 records and 30 columns, and the performance was okay.
I am a bit surprised that the load on expand time is up to 30 seconds, and this is why it would be highly appreciated if you could share a sample with me with the problem in order to reproduce it on my side.
Looking forward to your reply.
Thank you for your reply,
Unfortunately, I cannot send you the actual data, as we are a HealthCare organization. The data contains identifying information that cannot be shared outside of our organization. The data being retrieved in located in several tables. This is the reason I'm using stored procedures to return the data. I can tell you that, running the combined procedures from the database take less that 1 second to return results. Is there another type of data source i can use other than a SqlDataSouce?
I have created a private case where we can continue our communication - CAS-205437-K2W1V5