Пользовательский интерфейс Kendo для подкачки jQuery не работает — «Нет элементов для отображения»

#jquery #asp.net-core #kendo-ui #asp.net-core-mvc #kendo-grid

#jquery #asp.net-core #kendo-ui #asp.net-core-mvc #kendo-grid

Вопрос:

Я использую сетку пользовательского интерфейса Kendo и передаю в нее данные в формате json. Поле «Всего» равно 1157, а размер страницы равен 10. Я хочу управлять подкачкой страниц на стороне сервера, но в нижней части сетки Kendo отображается сообщение «Нет элементов для отображения». Это мой index.cshtml:

 <div dir="rtl"><div id="grid" class="k-rtl"></div></div>
    <script at="Foot">
        $(document).ready(function(){
            $("#grid").kendoGrid({
                columns: [{
                        field: "Fullname",
                        title: "name"
                    }],
                dataSource: {
                    transport: {
                        type: "json",
                        read: "/pms/Persons/Persons_Read",
                        data: {
                            format: "json"
                        }
                    },
                    schema: {
                        data: "Data",
                        total: "Total"},
                    serverPaging: true,
                    pageSize: 10
                },
                pageable: true
            });
        });
    </script>
 

и это действие контроллера пользователей на стороне сервера:

 [AcceptVerbs("Get")]
        public ActionResult Persons_Read([DataSourceRequest]DataSourceRequest request)
        {
            return Json(Getpersons().ToDataSourceResult(request));
        }
 

В таблице отображаются только 10 первых записей и 0 страниц после этого.

Ответ №1:

Я сделал тестовую демонстрацию почти как у вас, и она отлично работала на моей стороне. Я внес следующие изменения

1. Первая буква столбца field должна быть строчной «Полное имя»

     columns: [{
        field: "fullName",
        title: "name"
    }],
 

2. Данные и итог также должны быть в нижнем регистре

     schema: {
        data: "data",
        total: "total"
    },
 

Ниже приведен код:

Модель:

 public class Person
{
    public string FullName { get; set; }
}
 

Вид:

 <div dir="rtl"><div id="grid" class="k-rtl"></div></div>

@section scripts{

    <script at="Foot">
        $(document).ready(function () {
            $("#grid").kendoGrid({
                columns: [{
                    field: "fullName",
                    title: "name"
                }],
                dataSource: {
                    transport: {
                        type: "json",
                        read: "/Person/Persons_Read",
                        data: {
                            format: "json"
                        }
                    },
                    schema: {
                        data: "data",
                        total: "total"
                    },
                    serverPaging: true,
                    pageSize: 10
                },
                pageable: true,
            });
        });
    </script>
}
 

Контроллер:

 public class PersonController : Controller
{
    [AcceptVerbs("Get")]
    public ActionResult Persons_Read([DataSourceRequest] DataSourceRequest request)
    {
        return Json(Getpersons().ToDataSourceResult(request));
    }

    private List<Person> Getpersons()
    {
        var people = new List<Person>();
        for (int i = 0; i < 1157; i  )
        {
            var person = new Person()
            {
                FullName = "Person" i
            };
            people.Add(person);
        }
        return people;
    }
}
 

Результат:

введите описание изображения здесь