请查看以下小提琴,了解正常工作:
http://jsfiddle.net/jepod675/2/
我的数据如下:
var countries = [{id:'1',text:'Country 1'},{id:'2',text:'Country 2'}];
var states = [];
states[1] = [{id:'1',text:'C1 State 1'},{id:'2',text:'C1 State 2'}];
states[2] = [{id:'3',text:'C2 State 1'},{id:'4',text:'C2 State 2'}];
产生问题的步骤:
请注意,值已更改为“C1状态1'到1(国家的id而不是名字。
您还可以在第一行看到State选项(参见屏幕截图)。
我想handsontable每列维护一个选项实例。
开发人员在https://github.com/trebuchetty/Handsontable-select2-editor/issues/15#issuecomment-144553584
的评论我不确定如何解决这个问题。 Handsontable保持一个 每列实例有效。您可能需要覆盖此行为, 我认为这是可能的,但会有性能损失 与此相关联。您可能需要验证其他列 打开编辑器之前的值,以便您可以替换 具有正确列表的选择列表。
我正在寻求如何解决这个问题的帮助?
答案 0 :(得分:1)
由于您使用的是select2编辑器,因此编辑器具有回调方法“onBeginEditing”
$("#hot").handsontable({
onBeginEditing: function () {
var activeEditor = instance.getActiveEditor();
var selectedRow = activeEditor.cellProperties.row
var selectedColumn = activeEditor.cellProperties.col;
if ( selectedColumn == 3) {
var tester = instance.getDataAtCell(selectedRow, 14);
var filterlist = [];
var optionsList = activeEditor.options.data;
for (var index = 0; index < optionsList.length; index++) {
if (tester == optionsList[index].tester) {
filterlist.push(optionsList[index]);
}
}
activeEditor.options.data = filterlist;
}
});