Я использую таблицы деревьев и реализовал собственный фильтр данных. Я просто хочу сделать некоторую операцию на первом уровне иерархии данных. Вы знаете, как я мог сделать это?
Я покажу вам некоторый контекст. На рисунке ниже, когда я нажимаю, чтобы открыть внутренний уровень данных, сумма (или среднее значение) изменяется. Неправильно один раз, что высокий уровень вычисляет эту информацию.
Мне просто нужно поставить условие, это первый уровень сделать что-то.
Вот мой текущий код.
<script>
webix.ui.datafilter.reports = {
refresh: function(master, node, column){
trackCells:false,
refresh: function(master, node, column){
var result = 0;
var tipoDeDados = null;
master.mapCells(null, column.columnId, null, 1, function(value){
if (tipoDeDados === null) {
tipoDeDados = defineTipoDeDados(value);
}
valorLimpo = removeCaracteresInvalidos(value);
result += valorLimpo; // here I think that I need the condition
return value;
});
if (tipoDeDados === "porcentagem") {
node.firstChild.innerHTML = (result/master.count()).toFixed(2).replace('.', ',') + '%';
} else if (tipoDeDados === "moeda") {
node.firstChild.innerHTML = 'R$ ' + (result).toFixed(2).replace('.', ',');
} else if (tipoDeDados === "numerico") {
node.firstChild.innerHTML = result;
} else {
node.firstChild.innerHTML = "";
}
},
render: function(a, b){}
};
</script>
Webix Docs говорит, что мне просто нужно поставить trackCells false, чтобы избежать перезагрузки фильтра данных, но он не работает, когда я получаю новые данные через загрузку ajax.