Kendo Grid中的寻呼机错误(Nan-Nan of 1 items)

时间:2014-05-29 19:06:22

标签: javascript jquery kendo-grid

我正在尝试创建一个包含学生详细信息列表的Kendo网格。点击添加按钮,寻呼机显示“Nan-Nan of 1 items”。

@(Html.Kendo().Grid<Student.Models.StudentDetails>()
            .Name("StudentDetailsGrid")
             .Pageable()
                 .HtmlAttributes(new { id="StudentDetailsGrid"})
            .Columns(col =>
                {col.Bound(a => a.FirstName).Title("Name");

                    col.Bound(a => a.LastName).Hidden()
                    col.Bound(a => a.StudentID).Hidden();
                    col.Command(a => { a.Destroy(); a.Edit(); }).Title("");
                }
            )
            .ToolBar(toolbar => toolbar.Create().Text("Add").HtmlAttributes(new {@id="btnCreateStudent"}))
            .Editable(editable => editable.Mode(GridEditMode.InLine))
                .Scrollable(scrol => scrol.Enabled(true))

            .DataSource(source => source
                .Ajax()
                .PageSize(5)

                .Model(a =>
                {
                    a.Id(b => b.StudentID);


                })

             .Read(read => read.Action()
             .Create(create => create.Action())
             .Destroy(destroy => destroy.Action())
             .Update(update => update.Action())


           ).Events(even => even.Save("SaveDetails").Edit("ChangeNoOfStudent").DataBound("StudentValidate")))

`

在Document.ready函数:

$(document).ready(function () {
        $.ajax({
                url: '../Student/GetStudentDetails?StudentId=' + Data.StudentId,
                type: 'POST',
                contentType: 'application/json',
                dataType: 'json',
                success: function (data) {

                    if (data.length > 0) {


                        var studentdetail = new kendo.data.DataSource({
                            data: data,
                            pageSize: 5

                        });
                        $("#StudentDetailsGrid").data("kendoGrid").setDataSource(studentdetail);

                    }

我添加了页面大小,但我仍然可以看到“Nan-Nan of 1 items”。

你能帮忙吗?

7 个答案:

答案 0 :(得分:18)

您需要在网格数据源中定义pageSize。不在成功函数中。

在您的情况下,您只需要在数据源中包含以下内容:

 $.ajax({
                url: '../Student/GetStudentDetails?StudentId=' + Data.StudentId,
                type: 'POST',
                contentType: 'application/json',
                dataType: 'json',
                pageSize: 10,
                success: function (data) {...

我希望这会有所帮助。 有关更多信息,请访问:Sudarsan Dash'blogs

答案 1 :(得分:12)

我让它的工作方式如下:指定数据源内的pagesize修复了我的问题(Nan-Nan of 1 items)

&#13;
&#13;
< script type = "text/javascript" >

  $(document).ready(function() {

    var modelData = @Html.Raw(Json.Encode(Model));

    $("#grid").kendoGrid({

      reorderable: true,
      pageable: {
        input: true,
        numeric: false
      },
      scrollable: true,
      sortable: true,
      dataSource: {
        data: modelData,
        pageSize: 10 // specifying the pagesize inside the datasource fixed my problem (Nan-Nan of 1 items)
      },
      columns: [{
        field: "fieldparameter",
        title: "titleparameter",
        filterable: true,
        sortable: true
      }]
    });
  }); < /script>
&#13;
&#13;
&#13;

答案 2 :(得分:4)

这是解决问题所需的条件。像梦一样工作!

<script>
    $(document).ready(function () {

        $("#grid").kendoGrid({

            dataSource: {
                pageSize: 10
            },

        });
    });
</script>

答案 3 :(得分:1)

在dataSource:{} as,

中添加pageSize:5
         dataSource: {
            pageSize: 5
         }

如果你把pageSize:5放在dataSource:{}之外你会得到那个错误“Nan-Nan”

答案 4 :(得分:0)

从@(Html.Kendo()。Grid()中删除.PageSize(5) 添加pageSize:var in studentdetail = new kendo.data.DataSource({

答案 5 :(得分:0)

由于某种原因,仅将pageSize添加到我的数据源中对我来说不起作用。

我通过将初始网格页面设置为1来解决了这个问题,并且在我的数据源中也定义了pageSize:

                    var grid = $("#grid").data("kendoGrid");
                    var dataSource = new kendo.data.DataSource({ data: response.data });
                    grid.setDataSource(dataSource);
                    grid.dataSource.page(1); // need so that Nan - Nan is not the starting page.
                    grid.dataSource.read();

答案 6 :(得分:0)

正如其他人所说,您需要分配pageSize属性。同样,如果您需要重新分配数据源:

var dataSource = new kendo.data.DataSource({
   data: gridData,
   pageSize: 15 // this property
});
var grid = $('#grid').data('kendoGrid');
grid.setDataSource(dataSource);