【发布时间】:2013-07-12 07:57:38
【问题描述】:
我有一个似乎无法解决的问题。我需要创建一个循环遍历数据集数组并为每个数据集创建一个独立的 slickgrids 的函数。问题是函数需要独立绑定到每个网格。例如:
// this part works fine
for(var i=0; i<domain.length; i++){
dataView = new Slick.Data.DataView();
grid = new Slick.Grid('#' + domain[i].name, dataView, domain[i].columns, domain[i].options);
var data = domain[i].data;
// this works well and I am able to create several slickgrid tables
... etc ...
问题是每个网格现在都称为“网格”。因此,当我绑定这样的函数时:
// controls the higlighting of the active row
grid.highlightActiveRow = function () {
var currentCell;
currentCell = this.getActiveCell();
我得到一个影响所有网格(或在某些情况下只影响一个网格)的结果。
如何创建多个具有关联功能的独立网格???问题似乎是我创建了一个对象“网格”,然后使用语法 grid.xxx 分配所有函数 - 但我不知道如何在每次迭代中创建一个唯一对象。
任何帮助将不胜感激。
PS:slickgrid 真是太棒了!!
谢谢
//****** 更新**** ***** @Jokob,@user700284
感谢两位的帮助。这是我设法到达的地方:
var dataView;
function buildTable() {
for(i = 0; i<domains.length; i++){
dataView = new Slick.Data.DataView();
var d = domains[i];
grid = new Slick.Grid('#' + d.name, dataView, d.columns, grids.options);
var data = d.data;
grid.init();
dataView.beginUpdate();
dataView.setItems(data);
// dataView.setFilter(filter); -- will be reinstated once i have this working
dataView.endUpdate();
arrOfGrids.push(grid);
};
};
Jakob - 现在我坚持使用“for(i)”,直到我能理解你的评论 - 这似乎很明智。
但是,使用上述方法,并没有填充网格数据。我没有收到任何 js 错误,并且正在填充列标题,但没有填充数据。对 d.data 的引用绝对正确,因为我可以使用 Chrome js 调试器查看数据。
有什么想法吗?非常感谢您迄今为止的帮助
【问题讨论】:
-
其实...我看到数据已经加载了!但直到我滚动它才出现。我想我错过了可视化数据的最终声明。会看看
标签: slickgrid