【问题标题】:Unable to find the Kendo Grid Pager using JQuery无法使用 JQuery 找到 Kendo Grid 寻呼机
【发布时间】:2020-10-20 12:57:12
【问题描述】:

我正在尝试将现有项目中的剑道控件更新为较新的版本 (2020.3.915.440)。之前我们使用剑道控件2014.3.1119.440版本。

更新到较新版本后,我无法使用以下代码获取寻呼机下拉菜单。它给出错误消息“无法读取未定义的属性'bind'”。它正在使用现有版本。你能帮我解决这个问题吗?

   //add change event to kendo pager pageSizes dropdown
        var grid = $("#RptGrid").data("kendoGrid");
        var pageSizeDropDownList = grid.wrapper.children(".k-grid-pager").find("select").data("kendoDropDownList");

        pageSizeDropDownList.bind("change", function(e) {
            var pageSize = e.sender.value();
            localStorage.setItem('RptItemsPerPage', pageSize);
        });

【问题讨论】:

  • 该错误表示pageSizeDropDownList 未定义。它表明找到了grid,但没有找到其他东西。尝试添加console.log(grid); 可能有太多孩子或其他东西太模棱两可。目前尚不清楚现在使用的是哪个 jQuery 版本。另外,您可以考虑从 .bind() 转移到 .on()。

标签: jquery jquery-ui kendo-ui kendo-grid kendo-asp.net-mvc


【解决方案1】:

我刚刚使用this Kendo example page 进行了尝试,以下代码对我有用(我更新了下面的代码以匹配您的网格 ID)):

var grid = $("#RptGrid").data("kendoGrid");

var pageSizeDropDownList = grid.wrapper.children(".k-grid-pager").find(".k-dropdown select").data("kendoDropDownList");

【讨论】:

    【解决方案2】:

    这应该可行:

    var pageSizeDropDownList = $("#RptGrid .k-grid-pager [data-role=dropdownlist]").data("kendoDropDownList");
    

    现在 .k-grid-pager 元素中有多个“选择”元素,这就是原来的选择器不再起作用的原因。

    G_Ps 的答案同样好,我们都只是使用了更具体的选择器。在这种情况下,请使用浏览器开发工具检查元素以了解如何选择您需要的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-19
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 2021-11-23
      • 2012-12-16
      • 2010-11-25
      • 2014-10-26
      相关资源
      最近更新 更多