编辑表后,如何从赋值函数模块中的任何一行获取值



在用户编辑表后,我在从表的前三行获取值时遇到问题。

表应将分数授予列";pts1,pts2,…ptsn";(奖励的分数(通过匹配列";sp1,sp2,…spn";(选定的飞行员(和列";ro";(官方结果(。

1.-如果";spn";值匹配";ro";在同一行中,用户从列"获得点数;po"(根据飞行员的位置进行官方评分(。

2.Else如果";spn";值在讲台上(前3行(,则用户对于任何符合和不符合第一个条件的值只得到2分。

3.-否则用户得0分。

列";ro";可以由用户编辑以进行预测。

问题:若表是由用户在页面上编辑的,那个么mutator会处理第一个和第三个条件,但不会处理第二个条件,所以它永远不会奖励2分。控制台日志导致var平台上的undefine。如果";ro";值被加载,所以我想逻辑是有效的。

到处找都找不出这个,我会错过什么?。

这是我的示例代码:

var tabledata = [
{id:1, ro:'', op: 25, sp1:"HAM", pts1:''},
{id:2, ro:'', op: 18, sp1:"VER", pts1:''},
{id:3, ro:'', op: 15, sp1:"BOT", pts1:''},
{id:4, ro:'', op: 12, sp1:"PER", pts1:''},
{id:5, ro:'', op: 10, sp1:"RIC", pts1:''},
{id:6, ro:'', op: 8, sp1:"ALO", pts1:''} // table is only 10 rows first 10 pilots
];

var table = new Tabulator("#pronosticos", {
height:"310px",
dataTree: true,
reactiveData:true,
data:tabledata,
dataChanged:function(data){
document.getElementById("bt-puntaje").style.display="inline-block";
},
cellHozAlign:"center",
layout:"fitColumns",
columns:[ 
{title:"POS", field: "pos", formatter:"rownum", width:40, frozen:true},
{title:"RES PRE", field:"ro", width:70, frozen:true, editable:true, editor:'autocomplete', 
editorParams: {
allowEmpty:true, 
showListOnEmpty:true, 
values:["ALO", "BOT", "GAS", "GIO", "HAM","LAT","LEC","MAZ","NOR", "OCO", "PER", "RAI", "RIC", "RUS", "SAI", "MCH", "STR", "TSU", "VET", "VER"] // list of pilots to select
},

{title:"PTS", field:"op", width:40, frozen:true, visible:false},

//          *****************************************    sp1   *****************************************
{title:"PN", headerTooltip: "Players Name",
columns:[
{title:"SEL", field:"sp1", width:50},
{title:"PTS", field:"pts1", bottomCalc:"sum", width:10,
mutator:function(value, data){ 
var selected = data.sp1;
var winner = data.ro;
var podium = [tabledata[0].ro, tabledata[1].ro, tabledata[2].ro]; // Error Undefine if table edited
if(selected === ""){
return
} else {
if(podium.length > 0){
if(selected == winner){
return data.op; // This part works ok
} else {
if(podium.includes(selected) && data.id < 4){
return 2; // this part does not work
} else {
return 0;}}}}}

]
},
],
});

$("#bt-puntaje").click(function () {
table.updateData(tabledata);
}); 

好的,刚刚解决了我的问题,在同一页中加载了第二个具有相同泛型结构的表。将该表的var名称从tabledata更改为tabledata2,将table更改为table2,工作正常。Tabulator非常好,很高兴了解更多关于其功能的信息。向创作者和所有社区致以最良好的问候。

相关内容

最新更新