未捕获的TypeError:无法读取属性' pager'未定义在KendoGrid中

时间:2014-07-24 09:49:58

标签: c# kendo-ui pagination kendo-grid

我试图通过使用以下代码保持选项“全部”以显示网格中的所有数据。 但是当代码到达grid.pager.element时,它显示错误为“pager”undefined。

enter image description here

首先,当我点击搜索群组“TBU”时,All没有选项。当我再次点击时,“全部”显示为我点击了多少次。

  $.ajax({
         type: "POST",
         url: "Report_Services/Report.asmx/BindKendoAvailableList",
         data: "{'groupId':" + $('#cboGroupName option:selected').val() + "}",        
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         success: function (result) {

             data = result.d;
             $("#grid").kendoGrid({
                 dataSource: {
                     transport: {
                         read: function (options) {
                             options.success(data);
                         }
                     },
                     schema: {
                         type: "xml",
                         data: "/NewDataSet/myTable",
                         model: {
                             // configure the fields of the object                                  
                             fields: {
                                 AssetCode: "AssetCode/text()",
                                 AssetName: "AssetName/text()"
                                 AssetStatusName: "AssetStatusName/text()"
                             }
                         }
                     },
                     pageSize: 10
                 },
                 sortable: true,
                 filterable: true,
                 reorderable: true,
                 navigatable: true,
                 selectable: "multiple",
                 columnMenu: true,
                 resizable: true,
                 pageable: {
                     refresh: true,
                     pageSizes: true,
                     buttonCount: 8
                 },
                 columns:
                    [{
                        field: "AssetCode",
                        title: "Asset Id"
                    }, {
                        field: "AssetName",
                        title: "Asset Name"
                    },{
                        field: "AssetStatusName",
                        title: "Status"
                    }]
             });
         }
    });

    debugger;
    var grid = $("#grid").data("kendoGrid");
    var dropdown = grid.pager.element
                        .find(".k-pager-sizes [data-role=dropdownlist]")
                        .data("kendoDropDownList");

    var item = {};
    item[dropdown.options.dataTextField] = "All";
    item[dropdown.options.dataValueField] = 1000000;
    dropdown.dataSource.add(item);

    dropdown.bind("change", function (e) {
        if (this.text() == "All") {
            grid.one("dataBound", function () {
                setTimeout(function () {
                    dropdown.span.text("All");
                });
            });
        }
   });

1 个答案:

答案 0 :(得分:1)

在你的情况下,听起来网格变量是未定义的而不是寻呼机。确保在实际初始化Grid后执行此代码,并确保选择器正确。