Kendo UI MVC Grid DataSourceRequest JavaScript发布附加数据

时间:2014-11-25 21:55:30

标签: jquery asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我正在尝试为不属于Kendo UI Grid控件的按钮创建单击事件。

使用以下代码可以轻松完成此操作:https://stackoverflow.com/a/20973015/60629

使用DataSourceRequest代码

的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!");
       }
    );
  }
});

控制器代码

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

其他数据

但是,我还需要传递其他参数。 JavaScript更改

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

控制器

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

原始文件返回带有数据的DataSourceRequest,而辅助文件将返回附加数据,但是有一个空的请求对象。

我不确定如何从这里开始。

1 个答案:

答案 0 :(得分:2)

感谢同事,答案变得相当明显!错误在于如何设置发送的JSON对象,不应使用请求参数。

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

DataSourceRequest属性会自动同步到控制器中的参数。