Search code examples
kendo-uikendo-gridkendo-datasource

Is it possible to copy a grid datasource to a new datasource, a new datasource that loads all data?


Is it possible to copy a grid datasource to a new datasource, a new datasource that loads all data? For example I have a kendo grid which has a page size of 10, how would I copy it into a new datasource which will load all the data and ignore the paging.


Solution

  • Some aspects might depend on how did you define the DataSource of the first (pageable) datasource. But basically you need to copy the original data source, then change the value for pageSize and serverPaging and finally assign it to the second grid using setDataSource.

    Example:

    // First DataSource definition
    var ds1 = {
        transport: {
            read: ...
        },
        pageSize: 10,
        schema  : {
            model: {
                ...
            }
        }
    };
    
    // Copy ds1 definition into ds2
    var ds2 = ds1;
    // Change values for serverPaging and pageSize
    ds2.serverPaging = false;
    ds2.pageSize = 0;
    // Create new DataSource object and assign it to the second Grid
    grid2.setDataSource(new kendo.data.DataSource(ds2));
    

    You can see this running in the following JSFiddle : http://jsfiddle.net/OnaBai/uj6sr9ez/