使用 Tabulator 处理相关数据 ID 的最佳方法是什么
Whats the best way to handle related data ids using Tabulator
使用 Tabulator,如果你有一个 'select' 编辑器并希望它 link 到值 'Male' 和 'Female' 但在 male 和 female 下面是来自另一个物理数据库 table 的值,其 id 值为 1 和 2(与 'row' id 不同),执行此类操作的最佳方法是什么?
'select' 编辑器可以指定下拉列表中项目的显示和 selected 值的文字显示,但没有隐藏(不显示)基础 ID 的位置保存数据时要传递的 selected 值。
我们可以将 select 数据值包装在带有 selects 值 id 的数据属性的 div 中,然后在更新时传递它,但不确定这是最佳选择考虑如何制表符工作。我们也可以只传递原始的 selected 值,然后在服务器上查找它以获取关联的 ID,但这看起来开销很大并且将服务器与客户端紧密耦合,这是行不通的对于像第 3 方 API 这样我们没有服务器控制权的东西。
如有任何关于如何最好地处理此类事情的想法,我们将不胜感激!
select 编辑器允许以多种方式传递值,包括指定项目值及其用户可见标签
如果要对要存储的值显示不同的标签,可以传入一个对象,其中每个属性的key就是要存储的值,如果是selected,每个 属性 的值将是列表中为其显示的标签。
{title:"Name", field:"name", editor:"select", editorParams:{
values:{
"steve":"Steve Boberson",
"bob":"Bob Jimmerson",
"jim":"Jim Stevenson",
}
}}
对于更复杂的选项列表,您可以使用一个对象数组,它允许您定义选项组和禁用的选项。
{title:"Name", field:"name", editor:"select", editorParams:{
values:[
{ //option group
label:"Men",
options:[ //options in option group
{
label:"Steve Boberson",
value:"steve",
},
{
label:"Bob Jimmerson",
value:"bob",
},
]
},
{ //option group
label:"Women",
options:[ //options in option group
{
label:"Jenny Jillerson",
value:"jenny",
},
{
label:"Jill Betterson",
value:"jill",
},
]
},
{//ungrouped option
label:"Other",
value:"other",
},
]
}}
有关如何使用此编辑器的完整详细信息,请查看 Editor Documentation
终于明白了。您需要使用查找格式化程序使用与 select 编辑器相同的参数来显示文本值。这并不明显,因为文档中 select 编辑器示例的 none 显示了它的使用。不管怎样,这是一个简单的例子,在两个方向上都显示了它。当然,您可能希望将数据抽象出来而不是字面上的复制,但这里为了帮助展示字面用途,将其复制:
{
title:"Example",
field:"example",
editor: "select",
editorParams:{
"1": "Cute",
"2": "Fine",
"3": "Scary",
},
formatter:"lookup", // display option, but store value
formatterParams:{
"1": "Cute",
"2": "Fine",
"3": "Scary",
}
}
使用 Tabulator,如果你有一个 'select' 编辑器并希望它 link 到值 'Male' 和 'Female' 但在 male 和 female 下面是来自另一个物理数据库 table 的值,其 id 值为 1 和 2(与 'row' id 不同),执行此类操作的最佳方法是什么?
'select' 编辑器可以指定下拉列表中项目的显示和 selected 值的文字显示,但没有隐藏(不显示)基础 ID 的位置保存数据时要传递的 selected 值。
我们可以将 select 数据值包装在带有 selects 值 id 的数据属性的 div 中,然后在更新时传递它,但不确定这是最佳选择考虑如何制表符工作。我们也可以只传递原始的 selected 值,然后在服务器上查找它以获取关联的 ID,但这看起来开销很大并且将服务器与客户端紧密耦合,这是行不通的对于像第 3 方 API 这样我们没有服务器控制权的东西。
如有任何关于如何最好地处理此类事情的想法,我们将不胜感激!
select 编辑器允许以多种方式传递值,包括指定项目值及其用户可见标签
如果要对要存储的值显示不同的标签,可以传入一个对象,其中每个属性的key就是要存储的值,如果是selected,每个 属性 的值将是列表中为其显示的标签。
{title:"Name", field:"name", editor:"select", editorParams:{
values:{
"steve":"Steve Boberson",
"bob":"Bob Jimmerson",
"jim":"Jim Stevenson",
}
}}
对于更复杂的选项列表,您可以使用一个对象数组,它允许您定义选项组和禁用的选项。
{title:"Name", field:"name", editor:"select", editorParams:{
values:[
{ //option group
label:"Men",
options:[ //options in option group
{
label:"Steve Boberson",
value:"steve",
},
{
label:"Bob Jimmerson",
value:"bob",
},
]
},
{ //option group
label:"Women",
options:[ //options in option group
{
label:"Jenny Jillerson",
value:"jenny",
},
{
label:"Jill Betterson",
value:"jill",
},
]
},
{//ungrouped option
label:"Other",
value:"other",
},
]
}}
有关如何使用此编辑器的完整详细信息,请查看 Editor Documentation
终于明白了。您需要使用查找格式化程序使用与 select 编辑器相同的参数来显示文本值。这并不明显,因为文档中 select 编辑器示例的 none 显示了它的使用。不管怎样,这是一个简单的例子,在两个方向上都显示了它。当然,您可能希望将数据抽象出来而不是字面上的复制,但这里为了帮助展示字面用途,将其复制:
{
title:"Example",
field:"example",
editor: "select",
editorParams:{
"1": "Cute",
"2": "Fine",
"3": "Scary",
},
formatter:"lookup", // display option, but store value
formatterParams:{
"1": "Cute",
"2": "Fine",
"3": "Scary",
}
}