gpt4 book ai didi

javascript - GoJS:使用 itemArray 填充表格

转载 作者:行者123 更新时间:2023-11-27 23:57:39 25 4
gpt4 key购买 nike

我有一个如下所示的模板(我也使用 jQuery,因此我们的 GraphObject.make 不是 $ 而是 _):

_(go.Panel, 'Table', {
itemTemplate: itemTemplate(_)
},
new go.Binding('itemArray', 'items')
)

当然,这部分不是整个模板,我只包含重要的片段。

我现在想做的是制作一个 itemTemplate(_) ,它几乎一行接一行地返回(取决于 items 数组中的元素数量.

所以我尝试有一个像这样的itemTemplate()

itemTemplate = function(_) {
return _(
go.Panel,
'Horizontal',
{
margin: 2
col: 1
},
new go.Binding('row','row')
_(
go.Shape,
'Rectangle',
{
stretch: go.GraphObject.Horizontal,
height: 5
}
),
_(
go.TextBlock,
{
margin: 2
},
new go.Binding('text', 't')
)
);
};

说到这里,我突然恍然大悟。使用这种方法,我需要返回 2 个面板才能获得预期的输出。

如果有人想知道为什么行上有一个 Binding,我使用上面的 go.Binding 中的回调来解决这个问题,如下所示:

new go.Binding('itemArray', 'items',
function(d) {
for (i = 0; i < d.length; i++) {
d[i].row = i;
}
return d;
}
)

所以我的问题是:是否可以在 itemTemplate 周围有一个包装面板?像这样吗?

  • 面板:表格
    • 面板:无行、无列
      • 面板:行:1,列:1
      • 面板:行:1,列:2
    • NextPanel:无行无列

或者是否可以为每列返回两个单独的模板?

或者还有其他我不知道的解决方案吗?

最佳答案

是的,Panel.itemTemplate可以是TableRow类型的Panel。然后,该面板的每个元素都可以适本地设置其列。该行会自动设置。

请参阅 http://gojs.net/latest/intro/itemArrays.html 中的讨论和示例

关于javascript - GoJS:使用 itemArray 填充表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32112409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com