SlickGrid通过HTML元素使用jQuery获取网格实例

时间:2018-05-07 08:49:41

标签: jquery slickgrid

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

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

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

这个网格变量是我感兴趣的。 enter image description here

我想通过 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);
  }

2 个答案:

答案 0 :(得分:1)

SlickGrid并没有像这样将自己附加到HTML上,虽然我已经将其视为一些javascript客户端控件中的标准模式。
也就是说,使用jQuery自己设置它很容易:

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

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

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

虽然有关于您的错误消息的警告:但#34;无法读取属性'数据' of null"意味着$('#myGrid')返回null,如果DOM元素myGrid存在则不应该返回null。不知道那里发生了什么。

答案 1 :(得分:0)

获取表正文数据:

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

获取HTML正文数据:

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

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