KendoUI Grid Ajax Binding Parameters For Select

后端 未结 3 2066
梦如初夏
梦如初夏 2021-02-08 11:57

I have a basic KendoUI Grid for my ASP.NET MVC app which uses ajax binding for the read. I\'d like to enhance this so that a Form above the grid is used to help se

3条回答
  •  情深已故
    2021-02-08 12:32

    Nicholas answer could work if your requirements can be solved with the built in filtering. But if your requirements can be solved with the built filtering why do you want to create a custom search form?

    So I suppose you have a reason to do the search manually so here is how we've done it in our project (so maybe there is more easier way but still this worked for us):

    The controller action is fine:

    public ActionResult _Search([DataSourceRequest]DataSourceRequest request, 
                                CustomerSearchModel customerSearchModel)
    {
        return Json(DataService.GetCustomers2(customerSearchModel)
                   .ToDataSourceResult(request));
    }
    

    Next step: you need a JavaScript function which collects the data from the search form (the property names of the JS object should match the property names of your CustomerSearchModel) :

    function getAdditionalData() {
        // Reserved property names
        // used by DataSourceRequest: sort, page, pageSize, group, filter
        return {
            FirstName: $("#FirstName").val(),
            LastName: $("#LastName").val(),
            //...
        };
    }
    

    Then you can configure this function to be called on each read:

    .DataSource(dataSource => dataSource
            .Ajax()
            .Read(read => read.Action("_Search", "Customer")
                              .Data("getAdditionalData"))
        )
    

    Finally in your button click you just need to refresh the grid with:

    $('#Grid').data('kendoGrid').dataSource.fetch();
    

提交回复
热议问题