Tabulator v5.6,关于setValue()和编辑器的疑问:“List”

问题描述 投票:0回答:1

第一个疑问:

在我的制表表中,我有“价格”、“价格 2”、“折扣”列,在“折扣”列的 cellEdited() 中的给定时刻,我在“价格”列上执行了 setValue(),这会触发 cellEdited () 在 'price2' 列上执行 setValue(),这会触发 cellEdited() 在 'discount' 列上执行 setValue()...这里的问题是,这最终会导致循环(“列 1”调用 >“列 2”调用 >“列 3”调用 >“列 1”并保持在此循环中),我想知道是否有办法执行“静默”setValue() (不触发 cellEdited())从列?

目前我使用全局变量“triggered = true”来控制它,我在执行 setValue() 时设置该值,在 cellEdited() 中,我仅在全局变量没有值“true”时才执行操作,但是这似乎不是最好的选择。

第二个疑问:

我的“产品”列是编辑器:“列表”,但我希望在输入时“重新填充”列表选项“cellEditing()”和“cellEdited()”在这种情况下不起作用,因为它在文档中说“cellEditing()”是在开始编辑所选值时使用的,“cellEdited()”是在完成编辑后使用的,在文档中它有 'valuesURL: "http://myvalues.com", //a url 加载值(https://tabulator.info/docs/5.6/edit#editor-list),但就我而言,我没有 url,我将在视图中进行选择我的数据库,有关如何执行此操作的任何提示?我在这种情况下很迷失。

javascript tabulator
1个回答
0
投票

我不得不在没有任何帮助的情况下回答这个问题。我通过检查 Javascript 源代码做到了这一点。实际上这是一个简单的答案。您需要将Column的cellEdited设置为null,然后设置该值,然后将Column的cellEdited设置回原来的值。

在我的源示例中,是这样说明的..

                            cell._cell.column.definition.cellEdited = null;
                            cell.setValue(value);
                            cell._cell.column.definition.cellEdited = function (cell) { UpdateStatus(cell); }
© www.soinside.com 2019 - 2024. All rights reserved.