2013-03-07 2 views
2

Как я могу отправить дополнительные параметры на мой GRID POST.Kendo Grid посылает дополнительные параметры

Это мой -транспортно конфигурация:

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

Мне нужно отправить динамичную дополнительную информацию (особенные фильтры XD). Я установлю переменную скрипта перед подачей на сетку.

Любая помощь?

ответ

9

Вопрос обсуждается несколько раз в Интернете. Вы должны использовать функцию Data. Here - это еще больше информации. Вы также можете передать параметры непосредственно в , используя метод dataSource.

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

Есть ли подобный метод для создания/Update/уничтожить? –

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,