TL; 博士; 为简单起见,我如何过滤父子数组的多个属性,这些属性可能是几个树级别的深度。这是针对数百个用户使用的开源数据网格库。
所以我有一系列父/子引用,孩子们也可以有孩子自己等等,树级深度没有限制。此外,我不仅需要能够过滤具有树结构的属性,还需要能够过滤该数组的任何属性,即网格中的列。
例如,我有这个数组,它代表一个文件浏览器列表
const myFiles = [
{id: 11, file: "Music", parentId: null },
{id: 12, file: "mp3", parentId: 11 },
{id: 14, file: "pop", parentId: 12 },
{id: 15, file: "theme.mp3", dateModified: "2015-03-01", size: 85, parentId: 14, },
{id: 16, file: "rock", parentId: 12 },
{id: 17, file: "soft.mp3", dateModified: "2015-05-13", size: 98, parentId: 16, },
{id: 18, file: "else.txt", dateModified: "2015-03-03", size: 90, parentId: null, },
{id: 21, file: "Documents", parentId: null, },
{id: 2, file: …Run Code Online (Sandbox Code Playgroud) 鉴于:
grid = new Slick.Grid("#myGrid", data, columns, options);
grid.setSelectionModel(new Slick.RowSelectionModel());
grid.onSelectedRowsChanged.subscribe(function() {
row_ids = grid.getSelectedRows();
console.log(row_ids);
});
Run Code Online (Sandbox Code Playgroud)
...当我选择一行(比如第5行)时,我得到一个输出
[4]
Run Code Online (Sandbox Code Playgroud)
......这就是我所期待的.但是,CMD + Click或SHIFT + Click -ing除了这一行之外的另一行(比如第3行)给了我一个输出
[2]
[4, 2]
Run Code Online (Sandbox Code Playgroud)
......这不是我所期望的(我期待的是[4, 2]).只要选择的行数是这样的,这似乎就会发生> 1.所以,如果我要继续选择另一行(比如第17行),我会得到这个
[16]
[4, 2, 16]
Run Code Online (Sandbox Code Playgroud)
我在console.log语句中添加了一个断点,并验证了onSelectedRowsChanged它被触发了两次:一次是针对新单击的行,一次是针对所有选定的行.
为什么是这样?我只希望它被触发一次,给我完整的所选行数组.我怎么做到这一点?或者我错过了什么?
我有数据元素:
{
'rid': '1',
'id': '2',
'name': 'asdw'
},
{
'rid': '2',
'id': '2',
'name': 'dsddf'
},
{
'rid': '3',
'id': '2',
'name': 'fffgg'
}
Run Code Online (Sandbox Code Playgroud)
每个数据元素都具有相同的"id"属性值(slickgrid抛出"每个数据元素必须实现唯一的'id'属性").我如何在数据元素中使用另一个属性作为id(例如"rid")?我无法从数据对象中删除道具.
我在slickgrid中有一个列,其中所有单元格都需要在单元格的右侧应用一些填充.我在初始化网格的列时使用cssClass属性,但这仅适用于列的非标题单元格.如何指定用于标题的css类,以便我也可以对其应用正确的填充?如果没有填充,则标题单元格与其下方的其余单元格略微不一致.
是否可以将格式应用于Slickgrid中的特定行?
我知道您可以通过列应用格式规则 - 但我需要将格式规则应用于行.
也就是说,我的网格上有一个"总计"行 - 所以我想把这行变成粗体或者从其他行中脱颖而出.
用于生成树的slickgrid wiki上的示例生成的数据按照树输出父项和子项所需的确切顺序排序.请参阅:http://mleibman.github.com/SlickGrid/examples/example5-collapsing.html - 您可以看到,例如,如果父级是任务1,则子级是任务2和任务3等.
如果节点没有可以轻松用于对节点进行排序的属性,以便孩子们能够立即跟随他们的父母,那么我们如何告诉光滑的网格如何在输出树时对节点进行排序?
另外,光滑树可以支持排序,即它如何与节点顺序一起播放?
我正在创建一个网站,其中网格可能只有几行,或者可能有很多行.
当只有几行时,空格中的网格中浪费了大量空间.
理想情况下,我希望能够设置最小高度和最大高度,然后根据行数使光滑网格自动调整在该范围内.
我已经进行了搜索,发现可以选择将网格自动调整为行数,但显然与分页不兼容.
var gridOptions = { autoHeight:true };
Run Code Online (Sandbox Code Playgroud)
它似乎也无法设置最大高度; 它将继续扩展,直到所有内容都显示出来.
有没有人有任何解决方案或建议?
我正在尝试创建一个可编辑的SlickGrid(使用jquery-ui)并使用Dojo.
当我的页面包含
<script src="../../bower_components/dojo/dojo.js"></script>
<script src="../../bower_components/SlickGrid/lib/jquery-ui-1.11.3.js"></script>
<script src="../../mlads/fillDemo/FillDemo.js"></script>
控制台显示时
Error: multipleDefine
return mix(new Error(error), {src:"dojoLoader", info:info}); dojo.js (line 106)
src: dojoLoader dojo.js (line 1896)
info: Object { pid="dijit", mid="dijit/_WidgetsInTemplateMixin", pack={...}, more...}
Run Code Online (Sandbox Code Playgroud)
如果我注释掉jquery-ui行,那么错误就会消失.
FillDemo.js是我的源代码,它以
require(
[ "dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"dijit/registry",
"dijit/form/Button",
"dijit/form/DropDownButton",
Run Code Online (Sandbox Code Playgroud) slickgrid ×10
javascript ×3
arrays ×1
css ×1
datagrid ×1
dojo ×1
jquery ×1
jquery-ui ×1
tree ×1
typescript ×1