我有一个使用制表符的表。
一切正常,但是我正在尝试让Ajax自动完成工作
我正在尝试的是:
var customerNumbers = [];
var table = new Tabulator("#edi-table",
ajaxURL: baseUrl + '/PaginatedEndPoint',
pagination: "remote",
paginationSize: 30,
paginationSizeSelector: [30, 60, 100, 200],
ajaxSorting: true,
ajaxFiltering: true,
selectable: true,
cellEdited: function (cell) {
cell.getElement().style.backgroundColor = "#32CD32";
},
dataLoading: function () {
customerNumbers = ["11", "12", "13"];
},
columns: [
{
title: "CustomerNumber", field: "CustomerNumber", headerFilter: "input", editor: "autocomplete", editorParams: {
searchFunc: function (term, values) {
var matches = [];
values.forEach(function (item) {
if (item.value === term) {
matches.push(item);
}
});
console.log(matches);
return matches;
},
listItemFormatter: function (value, title) {
return "Mr " + title;
},
values: customerNumbers
}
}
]
但是,这对我而言并没有显示任何预测值预测,似乎在“ dataLoading”或任何其他Callback(我尝试过多次)被调用之前构建了自动完成功能。
我试图用{Title:“ Mr + title”,value:“ title”}这样的值样式制作辅助数组,然后在searchFunc中分配它,尽管返回了匹配。
是否甚至可以动态创建自动填充?
答案 0 :(得分:0)
似乎当前的自动完成功能不允许editorParams使用函数作为参数来设置下拉值。如果可以通过AJAX发送键/值对象,则可以设置它,但是就动态设置,更改或搜索数据而言,目前看来这是不可能的。
另一个选择是使用编辑器:“ select”,它可以使用一个函数来设置其editorParams。这不是最好的解决方案,但这是我目前必须使用的解决方案。
Tabulator文档中有一个open issue,但到目前为止,开发人员都没有回应。
希望我能为您提供更好的答案!