SlickGrid 获取具有 jQuery 到 HTML 元素的网格实例

SlickGrid get grid instance with jQuery through HTML element

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

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

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

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

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

我试过像 $('#myGrid').data('Slickgrid') 那样获取它,但那行不通。

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

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

获取tablebody数据:

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

获取HTMLbody数据:

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

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

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

自己设置它很容易
var grid = new Slick.Grid("#myGrid", data, columns, options);
$('#myGrid').data('SlickGrid', grid);

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

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

虽然关于您的错误消息有一点警钟:"cannot read property 'data' of null" 将暗示 $('#myGrid') 正在返回 null,如果 DOM 元素 myGrid 则不应返回 null存在。不确定那里发生了什么。