2013-03-07 67 views
2

如何在我的GRID POST上发送额外的参数。Kendo Grid发送额外参数

这是我tranport配置:

transport: { 
    read: { 
    dataType: "json", 
    url: "/user/list", 
    type: "POST" 
    } 
} 

我需要发送一个动态的额外信息(特殊过滤器XD)。 在网格上提交之前,我将设置一个脚本变量。

任何帮助?

回答

9

问题在互联网上多次讨论。您应该使用Data函数。 Here是更多信息。您也可以直接将参数传递给数据源的方法读取

$('#myGrid').data().kendoGrid.dataSource.read({foo:42}) 
+0

是否有创建一个类似的方法/更新/销毁? – 2016-12-08 18:49:11

0

您可以添加使用数据(“addParameter”)额外的参数

@(Html.Kendo().Grid<Project.Models.UserModel>() 
.Name("grid") 
.Columns(columns => 
{ 
    columns.Bound(item => item.UserId).Title("UserId").Width(100); 
    columns.Bound(item => item.UserName).Title("UserName").Width(200); 
}) 
.Sortable() 
.DataSource(dataSource => dataSource 
.Ajax() 
.PageSize(5) 
.Read(read => read.Action("list", "user").Data("addParameter")) 
) 

<script> 
function addParameter() 
    { 
     return { 
      UserId: 10 //Your value here 
     }; 
    } 
</script> 
0

这里是另一种选择发送参数AJAX调用,同时也记录的请求和响应。

read: function (options) { 

      var jsonData = { 
       "ID":   $('#ID').val(),   
       "ObjectType": $('#dropObjectType :selected').val() 
      }; 
      console.log("REQ: " + JSON.stringify(jsonData)); 

      $.ajax({ 
       type: "POST", 
       url: "/api/internal/SomeService", 
       data: jsonData, 
       success: function (result) { 
        console.log("RES: " + JSON.parse(JSON.stringify(result)));  

您也可以发送上述jsonData这样:

$("#grid").data("kendoGrid").dataSource.read(jsonData); 

,并将其分配给data:(并记录它):

read: function (options) { 

     console.log("REQ: " + JSON.stringify(options.data)); 

     $.ajax({ 
      type: "POST", 
      url: "/api/internal/SomeService", 
      data: options.data,