1

У меня есть сетка кендо, которая первоначально загружает эти данные.Kendo grid total не связывался после ajax get

@(Html.Kendo().Grid<GridModel>() 
       .Name("Grid") 
       .Columns(columns => 
       { 
        columns.Bound(p => p.ID).Hidden(true); 
        columns.Bound(p => p.Name); 
        columns.Bound(p => p.Village); 
        columns.Command(command => 
        { 
         command.Custom("ButtonP"); 
         command.Custom("ButtonEdit"); 
         command.Custom("ButtonActive"); 
         command.Custom("ButtonPause"); 
        }).Width("20%").HtmlAttributes(new { @class = "Custom" }); 
       }) 
       .Reorderable(reordering => reordering.Columns(true)) 
       .HtmlAttributes(new { style = "margin-bottom: 20px;" }) 
       .Sortable() 
       .EnableCustomBinding(true) 
       .ColumnMenu() 
     .AutoBind(false) 
       .Pageable(pageable => pageable 
        .Refresh(true) 
        .PageSizes(true) 
        .ButtonCount(5)) 
       .DataSource(dataSource => dataSource 
        .Ajax() 
        .Read(read => read.Action("GetData", "Home")) 
       // .PageSize(30) 
        .ServerOperation(true) 
      ) 
       .Events(e => e.DataBound("ModifyButtons")) 
      ) 

После этого есть кнопка поиска, которая вызывает бэкенд, чтобы получить записи и общее по АЯКС call.If я включаю все записи она идет для подкачки, но когда я иду на сервер пейджинговой Не выборки счет или общие записи. Рабочая Аякса

var dataSource = new kendo.data.DataSource({ 
        data: response 
       }); 
$("#Grid").data("kendoGrid").setDataSource(dataSource); 

и бэкенд

var searchItems = Service.Search(SearchModel).Select(GridModel); 
       return Json(searchItems, JsonRequestBehavior.AllowGet); 

Но я хочу сделать сервер подкачки и когда я возвращаюсь это (неработающего Ajax)

var dataSource = new kendo.data.DataSource({ 
        data: response.Data, 
        total: response.Total 
       }); 
$("#Grid").data("kendoGrid").setDataSource(dataSource); 

и бэкенд

var searchItems = Service.Search(SearchModel).Select(GridModel); 
       var records = new 
       { 
        Data = searchItems, 
        Total = 90 
       }; 
       return Json(records, JsonRequestBehavior.AllowGet); 

== Жесткий кодированный итог для тестирования. SearchModel содержит параметры для комплексного поиска

Скажите, пожалуйста, как найти общее количество с серверной части, оно показывает текущий размер страницы в виде общего количества.

ответ

1

Если вы используете обертки, это может быть проще для вас.

Если вы делаете побочные действия сервера затем изменить контроллер подпись, чтобы быть что-то вроде этого Примечания: Я предполагаю, что он не установлен, как показано ниже:

public JsonResult GetData([DataSourceRequest] DataSourceRequest request, SearchModel mySearchObject){ 
//stuff happens here. 
//get some results. 
var model = someresults; 
//more stuff happens here.... 

return Json(model.ToDataSourceResult(request),JsonRequestBehavior.AllowGet); 


} 

убедитесь, что вы добавили следующие usings хотя для этой работы:

using Kendo.Mvc.Extensions; 
using Kendo.Mvc.UI; 

это будет потом вернуться обратно новый объект datasource для вас, так что сетка должна связать правильно и дать вам общее, данные и т.д. вы после этого.

, не видя больше того, что вы делаете это, предполагает множество вещей, но, надеюсь, вы получите кусочки на первый взгляд, которые не видят ваш код.