【问题标题】:SlickGrid get grid instance with jQuery through HTML elementSlickGrid 通过 HTML 元素使用 jQuery 获取网格实例
【发布时间】:2018-05-07 08:49:41
【问题描述】:

我的例子:https://jsfiddle.net/djL5ad7m/

我的示例显示了一个基本的SlickGrid 示例。 我正在像这样创建网格:

var grid = new Slick.Grid("#myGrid", data, columns, options);

这个 grid 变量是我感兴趣的。

我想通过 jQuery 准确地获取这个元素 - 所以我可以调用一个外部函数并获取我上面的代码保存到 "var grid" 中的相同 Grid 变量.

我曾尝试像$('#myGrid').data('Slickgrid') 那样获取它,但这不起作用。

(Kendo UI Grid 完美地说明了这一点 - see my example with it here 并在下面找到代码)

/***** getGridExternalFunction *****/
  function getGridExternal(){
    var grid = $('#grid').data('kendoGrid');
    console.log('grid', grid);
  }

【问题讨论】:

    标签: jquery slickgrid


    【解决方案1】:

    SlickGrid 不会像那样将自己附加到 HTML,尽管我已经将其视为某些 javascript 客户端控件中的标准模式。
    也就是说,使用 jQuery 自己进行设置很容易:

    var grid = new Slick.Grid("#myGrid", data, columns, options);
    $('#myGrid').data('SlickGrid', grid);
    

    您可以在代码中的其他地方检索它,如您所示:

    var grid = $('#myGrid').data('SlickGrid');
    

    关于您的错误消息,有一点警告:“无法读取 null 的属性‘数据’”意味着$('#myGrid') 正在返回 null,如果 DOM 元素 myGrid 存在,则不应该返回 null。不知道那里发生了什么。

    【讨论】:

    • 谢谢,这正是我想要的
    • 至于错误消息 - 由于 jsfiddle 我必须选择正确的“html 容器”(如果这样的话)才能“看到”元素。我已相应更新了答案中的屏幕截图
    • 看起来您正在使用旧的 MLeibman 存储库。查看 www.slickgrid.net 和 github.com/6pac/SlickGrid
    【解决方案2】:

    获取表体数据:

    $('#myGrid').find('.slick-viewport')
    

    获取 HTML 正文数据:

    $('#myGrid').find('.slick-viewport')[0].innerHTML
    

    要获取标题数据,请在选择器中使用.slick-header

    【讨论】:

    • 对不起,没有。我想要 chrome 控制台的“深色”屏幕截图中显示的元素
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2016-05-18
    • 2010-12-08
    相关资源
    最近更新 更多