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
275
On Demand Loading of DrillDown / MultiBand Functionality
posted

Hi,

We have a program that we'd like to offer our customers "drill down" functionality in. I would like to use the multi-band functionality of the ultrawingrid to do this, but I have a concern about loading all the the data in DataTables before hand. We'd like to be able to drill-down to about 4 levels, where each level could have up to 1000 rows. Pre-loading all of that data, could mean having to preload up to 1000^4 rows of data which is way too much. What I'd like to do is capture the event of a user clicking to "expand" the row, then make a custom command to the database to only query the rows related to the parent. IE if you click to expand an "invoice" row I would query the database only for the invoice details related to that specific invoice. Is something like this possible? If not, is there another way I could go about handling this? You could think of it this way, any month we will have up to 1000 customers. Each of those customers will have at most around 1000 invoices. Each of those invoices could contains up to 1000 individual ordered pieces....etc. I want to be able to allow users to keep drilling down.

Thanks for reading and thanks in advance for any direction you can provide.

Mike

Parents
  • 469350
    Suggested Answer
    Offline posted

    Hi Mike,

    There are a couple of ways you could do this.

    One way would be to bind the grid to a DataSet. You would set up your 4 tables and the RelationShips between those tables. Then you populate the root-level table only. The default behavior of the grid is not to load the child rows until they are needed. So then all you have to do is handle the BeforeRowExpanded event of the grid and populate the appropriate child DataTable in the DataSet with the rows that match that particular parent.

    Another way to do this would be to use the UltraDataSource component as a buffer in between the grid and what data. UltraDataSource has support for load-on-demand functionality where it fires event whenever rows of data are needed. The Virtual Mode Samples included in the NetAdvantage Samples demonstrates using this technique.

  • 4219
    posted in reply to Mike Saltzman

    Hi,

     

    As Mike Saltzman mentioned you can use WinDataSource and Load Data On-Demand. In addition you can check the following forum posts which will show you how to organize your data: http://community.entityspaces.net/forums/t/1067.aspx .

    Let me know if this is helpful for you.

     

    Regards,

    Stefaniya

Reply Children
No Data