javascript - 连接两个 Handsontable

标签 javascript jquery handsontable

我正在尝试链接两个 Handsontable,以便第二个表显示第一个表中当前列的其他详细信息。第一个表的列标题中的数字将用于查找第二个表中的相应行。

单击第一个表中的任何单元格都会导致第二个表中的相应行突出显示。

单击第二个表应突出显示该行并将第一个表中的光标移动到相应的列。

这是 HTML:

<div id="main" class="handsontable"></div>
<p>
<div id="index" class="handsontable"></div>

这是显示表格的 Javascript:

$(document).ready(function () {

function getMainData() {
    return [["2008", 10, 11, 12, 13], ["2009", 20, 11, 14, 13], ["2010", 30, 15, 12, 13]];
}

function getMainHeaders() {
    return ["Year", 1, 2, 3, 4];
}

function getIndexData() {
    return [[1, "Kia", "Korea"], [2, "Nissan", "Japan"], [3, "Toyota", "Japan"], [4, "Honda", "Japan"]];
}

function getIndexHeaders() {
    return ["#", "Make", "Country"];
}

$("#main").handsontable({
    data: getMainData(),
    colHeaders: getMainHeaders(),
    fillHandle: false,
    readOnly: true
});

$("#index").handsontable({
    data: getIndexData(),
    colHeaders: getIndexHeaders(),
    fillHandle: false,
    readOnly: true        
});

});

我所需要的只是链接表格的代码!我一直在兜圈子试图让这项工作成功,但没有快乐。

我已经在 fiddle 中获得了以上所有内容。 .

预先感谢您的任何帮助或建议。

最佳答案

我设法做到了你所要求的(fiddle) 。我在表启动后添加了此代码:

var sync = function(tab1, tab2) {
    var syncSelection = function(row, col, rowEnd, colEnd) {
        var sel1 = tab1.getSelected();
        var sel2 = tab2.getSelected();
        if (!sel2) {
            tab2.selectCell(row, col, rowEnd, colEnd);
            return;
        }
        for (var key in sel1) {
            if (sel1[key] !== sel2[key]) {
                tab2.selectCell(row, col, rowEnd, colEnd);
                return;
            }
        }
    };

    // syncs while selecting (does not work for selecting one cell)
    tab1.addHook('afterSelection', syncSelection);
    // needed to sync selection of one cell
    tab1.addHook('afterSelectionEnd', syncSelection);
};


var mainTable = $('#main').handsontable('getInstance');
var indexTable = $('#index').handsontable('getInstance');

sync(mainTable, indexTable);
sync(indexTable, mainTable);

关于javascript - 连接两个 Handsontable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24747346/

相关文章:

javascript - 通过 Symfony2 Controller 将记录从数据库中提取到 javascript

javascript - 通过函数传递 elementID,然后返回变量并在其他地方使用。可能的?

javascript - 替换最后一次出现的随机单词

jquery - 问题 在 IE 中正确实现 Colorbox(所有版本)

当 HOT div 高度为 100% 时,Handsontable 滚动问题

php - 识别可疑登录的可靠方法有哪些?

javascript - 如何获取刚刚创建的用户的uId

javascript - 将动态生成的元素保持在文档边界内

javascript - 尝试创建表 IE10 时 Handsontable Hooks 未定义或为 null

javascript - Handsontable:从坐标获取字符串范围