0

データブルにフィルターを適用すると、テーブルにデータをロードする同じ関数を呼び出しますが、今回はスタイル、検索ボックス、前へ-次なしで表示されます...これが私のコードです:

<script type="text/javascript">
        $(document).ready(function() {
            $('#dataTable').dataTable();
        } );             
        // ----este array vendria de una consulta sql----           
        miArray = [[11,22,33,44,55,"22/11/2012",99,86,99,1010,1111],[11,22,33,44,55,"11/06/2011",77,88,99,1010,1111],[11,22,33,44,55,"11/06/2011",77,88,99,1010,1111],[11,22,33,44,55,"11/06/2011",77,88,99,1010,1111],[11,22,33,44,55,"11/06/2011",77,88,99,1010,1111],[11,22,33,44,55,"11/06/2011",77,88,99,1010,1111],[11,22,33,44,55,"11/06/2011",77,88,99,1010,1111],[11,22,33,44,55,"11/06/2011",77,88,99,1010,1111],[11,22,33,44,55,"11/06/2011",77,88,99,1010,1111]];

        function cargar(miArray){
            document.getElementById("divTabla").innerHTML = ""
            var tabla= "<table name='tabla1' id='dataTable'><thead><tr><th>Tipo de documento</th><th>Tipo de documento</th><th>Tipo de documento</th><th>Codigo de documento</th><th>Descripcion de documento</th><th>Fecha de documento</th><th>Codigo de proveedor</th><th>Descripcion de proveedor</th><th>Importe</th><th>Importe IVA</th><th>Total a pagar</th></tr></thead><tbody>"
                for (i=0;i<miArray.length;i++){ 
                        tabla = tabla + '<tr>'
                    for (j=0;j<miArray[i].length;j++){              
                        tabla = tabla +'<td></td>'                      
                    }   
                    tabla = tabla + '</tr>'     
                }
                tabla = tabla +'</tbody></table>'                   
                document.getElementById("divTabla").innerHTML = tabla               
                h=1
                for (i=0;i<miArray.length;i++){
                    for (j=0;j<miArray[i].length;j++){          
                        document.getElementById("dataTable").rows[h].cells[j].innerHTML = miArray[i][j]         
                    }   
                h++ 
                }       
        }
        function filtroP(){
            arrayP = []
            var h=0;
            for (i=0;i<miArray.length;i++){
                if (miArray[i][6]== document.form1.prov.value){
                    arrayP[h]=miArray[i]
                    h++
                }
            }
            alert(arrayP)
            cargar(arrayP); 
        }               
    </script>       
4

1 に答える 1

0

cargar設定すると、テーブルを吹き飛ばして読み直すように見えますinnerHtml。テーブルの構造を直接変更した場合は、Datatablesを再度呼び出して、新しいテーブル用に再初期化する必要があります。

コードが何をするのか完全にfnFilterはわかりませんが、代わりにデータテーブルにすでにある関数を使用してフィルタリングを行うことを検討してください。http://datatables.net/api#fnFilterを参照してください

http://datatables.net/api#fnDeleteRowもお勧めですfnDeleteRow

于 2012-04-24T03:38:26.007 に答える