我正在使用SlickGrid并对此非常满意,这是我见过的最好的网格之一。 我使用DataView表示数据,groupItemMetadataProvider表示分组。
我遇到以下问题并寻找解决方案。 我的数据包含一些具有多个值的字段。 例如。一个数据输入可以与多个国家/地区相关联:美国,IR,新西兰或多个类别:猫,狗,鸟。
两个问题:
真实生活示例
不分组
Name | Animals
-----------------
Paker | cats, dogs, birds
Michael | cats, snakes
动物分组
Name | Animals
-----------------
- cats
Paker | cats, dogs, birds
Michael | cats, snakes
- dogs
Paker | cats, dogs, birds
- birds
Paker | cats, dogs, birds
- snakes
Michael | cats, snakes
交叉发布到SlickGrid Google Group:https://groups.google.com/forum/#!topic/slickgrid/BxS_4Lny3KE
非常感谢!
答案 0 :(得分:2)
在单个单元格中显示自定义或基于集合的数据时,如果尝试垂直呈现该数据,则需要考虑the lack of native support for dynamic row height。
检查grouping function (extractGroups
~line 472)
for (var i = 0, l = rows.length; i < l; i++) {
r = rows[i];
val = gi.getterIsAFn ? gi.getter(r) : r[gi.getter];
group = groupsByVal[val];
if (!group) {
group = new Slick.Group();
group.value = val;
group.level = level;
group.groupingKey = (parentGroup ? parentGroup.groupingKey + groupingDelimiter : '') + val;
groups[groups.length] = group;
groupsByVal[val] = group;
}
group.rows[group.count++] = r;
}
显示自定义getter
是可能的,但在每行的分组中使用/预期使用单个值。因此,对于具有多值单元格的行显示在多个组中(没有修改源),数据必须被平铺&#34;。
然后,less than ideal solution变为维护与正在呈现的视图状态相对应的数据集。随着数据交互需求和/或数据大小的增加,这种解决方法变得不太可行,并且倾向于需要在源中实现自定义。