How prevent grid data source query on initialization?

Hola!! 

Por favor ayudenme. No quiero que la fuente de datos se ejecute al inicializar el control, solo hasta que yo llame el método refreshMarketingRequestsGrid().

¿Que debo hacer?

grMarketingRequests = new ejs.grids.Grid({
        allowPaging: true,
        allowResizing: true,
        height: '100%',
        columns: [
            {
                field: "Id",
                headerText: "",
                template: '#mrTemplate',
                width: 60
            }
        ],
        dataSource: new ejs.data.DataManager({
            url: "/MarketingRequests/GetRequests",
            adaptor: new ej.data.UrlAdaptor(),
            headers: {
                "__RequestVerificationToken": $("input[name=__RequestVerificationToken]").val()
            },
            dataType: "post"
        }),
        pageSettings: { pageSize: 10 }
    });

function getFiltersQuery() {
    var filters = getMarketingRequestsFilters();

    return new ej.data.Query()
        .addParams("ManufacturingLineIdFilter", filters.ManufacturingLineIdFilter)
        .addParams("UserIdFilter", filters.UserIdFilter)
        .addParams("StatusFilter", filters.StatusFilter)
        .addParams("StartMRNumberFilter", filters.StartMRNumberFilter)
        .addParams("EndMRNumberFilter", filters.EndMRNumberFilter)
        .addParams("StartOrderNumberFilter", filters.StartOrderNumberFilter)
        .addParams("EndOrderNumberFilter", filters.EndOrderNumberFilter)
        .addParams("StartCreateDateFilter", filters.StartCreateDateFilter)
        .addParams("EndCreateDateFilter", filters.EndCreateDateFilter)
        .addParams("ItemFilter", filters.ItemFilter);
}

function refreshMarketingRequestsGrid() {
    grMarketingRequests.query = getFiltersQuery();
}

3 Replies 1 reply marked as answer

TS Thiyagu Subramani Syncfusion Team September 11, 2020 01:48 PM UTC

Hi Israel, 

Thanks for contacting Syncfusion support. 

Based on your requirement we suspect that you want to send query params to server side and based on this query you need to define dataSource to the grid.  
But in your shared information we found that you sent bulk of query params to server side through the external method. 

For this we suggest to use dataSource as empty ([]) in initial and using button click call additional parameters methods (external method) and then defined dataSource to the grid. 

Please refer to the below code and sample link.  

In this sample we have defined dataSource as empty in initial. When clicking button we have loaded data to the grid. 

 
var data = new ej.data.DataManager({ 
            url: '/Home/UrlDatasource', 
            adaptor: new ej.data.UrlAdaptor(), 
            crossDomain: true 
        }); 
 
button.element.onclick = function () { 
            var gridObj = document.getElementsByClassName('e-grid')[0].ej2_instances[0]; 
            gridObj.query = new ej.data.Query().addParams('ej2grid', 'true'), 
            gridObj.dataSource = data; 
        } 
var grid = new ej.grids.Grid({  // grid initialize  
            dataSource: [],  
. . . . .  
        grid.appendTo('#Grid'); 

  
Please get back to us, if you need any further assistance. 

Regards, 
Thiyagu S 


Marked as answer

IT Israel Torres September 11, 2020 05:12 PM UTC

Thank you!!!

It works for me!!

Best regards


TS Thiyagu Subramani Syncfusion Team September 14, 2020 06:55 AM UTC

Hi Israel, 

Thanks for your update. 

We are happy to hear that your issue has been resolved. 

Please get back to us, if you need any further assistance. 

Regards, 
Thiyagu S 


Loader.
Up arrow icon