Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kendo UI MVC Grid DataSourceRequest JavaScript Post Additional Data

I am attempting to create a click event for an button that is not part of the Kendo UI Grid controls.

This was fairly easily accomplished with this code: https://stackoverflow.com/a/20973015/60629

Working DataSourceRequest Code:

JavaScript

$("#excel").kendoButton({
  click: function (event) {
    var grid = $('#grid_patients').data('kendoGrid');
        var parameterMap = grid.dataSource.transport.parameterMap;
        var sortData = grid.dataSource.sort();
        var filterData = grid.dataSource.filter();
        var groupData = grid.dataSource.group();
        var prepared = parameterMap({ sort: sortData, filter: filterData, group: groupData });

    $.post("/Root/Getresults", prepared, 
       function (data, status, xhr) {
         console.log("Ok!");
       }
    );
  }
});

Controller Code

public ActionResult Getresults([DataSourceRequest]DataSourceRequest request)
{
    ...

Additional Data

However, I need to also pass additional parameters. JavaScript Changes

 var extraParams = { /* appended data object */
     request: prepared,
     additionaldata: "test"
 };
 $.post("/Root/Getresults", extraParams, 
  ...

Controller

public ActionResult Getresults([DataSourceRequest]DataSourceRequest request, string additionaldata)
{
    ...

The original returns the DataSourceRequest with data and the secondary one will return the additionaldata, but has an empty request object.

I'm unsure how to proceed from here.

like image 489
JGood Avatar asked Sep 06 '25 13:09

JGood


1 Answers

Thanks to a coworker the answer became fairly obvious! The mistake was in how I setup the JSON object being sent, the request parameter shouldn't be used.

var extraParams = { /* appended data object */
     sort: prepared.sort,
     filter: prepared.filter,
     group: prepared.group,
     additionaldata: "test"
 };

DataSourceRequest properties are automatically synced up to the parameter in the controller.

like image 176
JGood Avatar answered Sep 10 '25 06:09

JGood