Kendo Angular Grid ServerSide Paging-частично работает

0

Я так близок и все же до сих пор...

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

Здесь я чего-то не хватает. Моя сетка отображает "Показывает 1-5 из 18", поэтому она каким-то образом анализирует счет для легенды сетки, но фактическая сетка показывает все 18 строк?

у моего _layout есть среди других файлов:

<script src="@Url.Content("~/Scripts/kendo/2016.1.412/kendo.aspnetmvc.min.js")"></script>

моя сетка:

$("<div/>").appendTo(e.detailCell).kendoGrid({
                dataSource: {
                    transport: {
                        read: function (f) {
                            $http.get('http://localhost:59722/SCat/GetSubCategories?categoryid=' + e.data.Id).
                            success(function (data, status, headers, config) {
                            f.success(data)
                            }).
                            error(function (data, status, headers, config) {
                            alert('something went wrong with subCategories')
                            console.log(status);
                            });
                        },
                        create: function (c) {
                            alert('adf');
                            $http.post('http://localhost:59722/Cat/AddNewSubCategory').
                            success(function (data, status, headers, config) {
                            f.success(data)
                            }).
                            error(function (data, status, headers, config) {
                            alert('something went wrong with update')
                            console.log(status);
                        });
                        }
                    },
                    pageSize: 5,
                    serverPaging: true,
                    serverFiltering: true,
                    schema: {
                        data: "Data",
                        total: "Total",
                        errors: "Errors"
                    }
                },
                pageable: true,
                filterable: true,
                editable: "inline",
                toolbar: ["create"],
                columns: [
                    { field: "SubCategoryName", title: "Category Name" },
                    { field: "SCategoryId", title: "Parent Id" },
                    { command: ["edit"]}
                ]
            })
        }

    })

Действие MVC:

public async Task<JsonResult> GetSubCategories([DataSourceRequest] DataSourceRequest request,  int? categoryid)
{
        int categoryId = categoryid ?? -9999;
        if (categoryId == -9999)
        { return Json("[{Error -9999 for categoryId}]"); }


        HttpResponseMessage responseMessage = await client.GetAsync(url + "/" + categoryId);
        if (responseMessage.IsSuccessStatusCode)
        {
            var responseData = responseMessage.Content.ReadAsStringAsync().Result;
            var x = JsonConvert.DeserializeObject<List<SubCategories>>(responseData);

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

        }

        return Json("[{Error}]");
     }

Fiddler 220 Json:

{ "Data":[
    {"Id":1,"SubCategoryName":"asdfe","CategoryId":1},
    {"Id":3,"SubCategoryName":"Self-Righteousness","CategoryId":1},
    ...removed brevity...
    {"Id":18,"SubCategoryName":"Viuyhj","CategoryId":1} 
    {"Id":19,"SubCategoryName":"zcxv","CategoryId":1}
    ],
"Total":18,
"AggregateResults":null,
"Errors":null}

Теперь я думаю, что у меня что-то отсутствует в моей угловой сетке, потому что мой DataSourceRequest ВСЕГДА заполнен значениями по умолчанию.

Кроме того, если я явно назначаю значение страницы, все работает.

public async Task<JsonResult> GetSubCategories([DataSourceRequest] DataSourceRequest request,  int? categoryid)
{
  request.PageSize = 5;
  ....snip
}

Так что это имеет какое-то отношение к моей Угловой сетке, но мне не хватает чего???

  • 0
    Вы смотрели на фактический URL, который используется для вызова конечной точки MVC? Размер страницы / количество страниц или пропуск / получение передаются в строке запроса?
  • 0
    Нет, это не так. Забыл поставить это в моем посте
Показать ещё 3 комментария
Теги:
kendo-grid
asp.net-mvc-4

1 ответ

0
Лучший ответ

Я также разместил это на форуме Telerik. Они ответили, что мне не хватает.

http://www.telerik.com/forums/angular-grid-datasourcerequest-pagesize-etc-always-default-values

Ещё вопросы

Сообщество Overcoder
Наверх
Меню