0

jQuery DataTable fnFooterCallback を使用して列を合計すると問題が発生します。たとえば、列(ダブルフィールド)に値があります:

2.0 3.0 4.0

フッター セルに合計値が表示されます: 2.0 3.0 4.0 代わりに 9.0 何が問題なのですか?

コードは次のとおりです。

    $(document).ready(function() {
        $('#example').dataTable({
            "fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {

                var iTotal = [0,0,0,0,0,0,0,0,0];
                 for ( var i=0 ; i<aaData.length ; i++ )
                    {
                        iTotal[0] += aaData[i][5];
                        iTotal[1] += aaData[i][6];
                        iTotal[2] += aaData[i][7];
                        iTotal[3] += aaData[i][8];
                        iTotal[4] += aaData[i][9];
                        iTotal[5] += aaData[i][10];
                        iTotal[6] += aaData[i][11];
                        iTotal[7] += aaData[i][12];
                    }

                 var nCells = nRow.getElementsByTagName('th');
                    nCells[5].innerHTML=iTotal[0];
                    nCells[6].innerHTML=iTotal[1];
                    nCells[7].innerHTML=iTotal[2];
                    nCells[8].innerHTML=iTotal[3];
                    nCells[9].innerHTML=iTotal[4];
                    nCells[10].innerHTML=iTotal[5];
                    nCells[11].innerHTML=iTotal[6];
                    nCells[12].innerHTML=iTotal[7];
            } 
        }
    );
    } );

助けてくれてありがとう、私の英語でごめんなさい:)

4

2 に答える 2

0

データが浮動小数点数/整数としてではなく、文字列として保持されているようです。

Number を使用するように呼び出しを変更して、データを正しくキャストします。

 iTotal[0] += Number(aaData[i][5]);
 iTotal[1] += Number(aaData[i][6]);
 iTotal[2] += Number(aaData[i][7]);
 iTotal[3] += Number(aaData[i][8]);
 iTotal[4] += Number(aaData[i][9]);
 iTotal[5] += Number(aaData[i][10]);
 iTotal[6] += Number(aaData[i][11]);
 iTotal[7] += Number(aaData[i][12]);
于 2013-01-28T15:14:37.737 に答える
0

わかりました、私は何が間違っていたかを見つけました:) 私は持っています: var nCells = nRow.getElementsByTagName('th');

そして私は例えば:

<th><center>${odczyt.id}</center></th>

center と /center の両方のバージョンを削除すると、 parseFloat と Number が機能します:)

答えてくれてありがとう@Joe Pym

于 2013-01-29T12:30:52.957 に答える