私はツリーテーブルを使用しており、カスタム データフィルターを実装しました。データ階層の最初のレベルで何らかの操作を行いたいだけです。どうすればそれを作ることができるか知っていますか?
いくつかのコンテキストを示します。下の gif では、クリックして内部レベルのデータを開くと、合計 (または平均) が変化します。高レベルでこの情報が計算されるのは、1 回だけ間違っています。
条件を付ける必要があるだけです。それは最初のレベルで何かを作ることです。
これが私の現在のコードです。
<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 の読み込みによって新しいデータを取得すると機能しません。