2013-03-07 65 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,