我一直遇到dgrid选择混合与多选的问题。
使用选择属性(例如)
var selected = Object.keys(datatable.selection)
它按预期返回行ID的数组。然而,这些ID的ORDER似乎是“任意的”。似乎选择顺序可能会产生影响。
无论如何,在数据表中,我希望返回选定的行,以便它们显示在列表中,而不是。
我可以使用dojo.query(".dgrid-selected", datatable.domNode)
以正确的顺序获取它们,并使用HTML元素获取行数据,但这似乎是一个黑客。
我无法找到在SitePen文档上执行此操作的正确方法。任何人吗?
答案 0 :(得分:1)
我认为没有直接的方法可以做到这一点。 Object.keys(datatable.selection)
按照选择行的顺序返回id数组。您可以使用d-grid
和JS的一些内置函数来实现此目的。以下是步骤:
通过Object.keys
获取ID。
var selected = Object.keys(datatable.selection)
rowIndex
元素代码:
var dataList= [];
for(var i=0; i< selected.length; i++){
dataList.push({id: selected[i], index: datatable.row(selected[i]).element.rowIndex});
}
index
作为属性对列表进行排序: dataList.sort(function(a, b){ return a.index- b.index; })
生成的dataList
将按顺序列出对象列表。