1

最初の行に対応する列の合計が含まれるテーブルを作成し、それを上部の別のテーブルに移動する方法を見つけようとしています.2番目のことはできましたが、最初のことはできませんでした、私のcustomJSFiddleでは、私がすでに行ったことを見つけました。これは私が試しているコードの一部です:

  $('#totalOtherConceptC_DataTable').handsontable({
    data: dataOtherConceptCDetails,
    colHeaders: false,
    columns: [{
            type: 'text'
            }, {
            type: 'numeric',
            renderer: function(instance, td, row, col, prop, value){
                        if(row == instance.countRows() - 1){
                            value = Operations.getTotal(1);
                        }

                        Handsontable.NumericRenderer.apply(this, arguments);

                      }
            }]
    });

合計は、列ごとにこのように計算されます

 Operations.getTotal = function(col){
        return dataOtherConceptCDetails.reduce(function(sum, row){
           return sum + row[col]; 
        }, 0);
  };

私はこの JSFiddle コードが機能することに基づいていますが、実装しようとすると、まったく機能しません。足りないものはありますか?

4

1 に答える 1

3

私もこの問題を抱えていました...この例はスタンドアロンの実装では機能しませんでした...これが私が思いつく回避策です: jsFiddle

renderer : function(instance, td, row, col, prop, value) {
            if (row == instance.countRows() - 1) {
        value = parseFloat(document.getElementById("cellTotal").value);
    } else {
        setTotalValue(row, value);
    }

Handsontable.renderers.NumericRenderer.apply(this, arguments);

列セルの合計を保持するために、非表示のプレースホルダーを使用する必要があったことに注意してください。最善のアプローチではないかもしれませんが、私にとってはうまくいきました。これが問題を回避する貴重な時間を節約するのに役立つことを願っています...

IE 10 と Chrome でテスト済み。

于 2014-03-14T15:33:25.480 に答える