簡體   English   中英

在 jquery 數據表中隱藏無法與服務器端處理一起正常工作的列

[英]Hide columns not working properly with server side processing in jquery datatables

我正在使用 jquery 數據表(1.10.9)進行服務器端處理。

    tab = $('#'+div).dataTable( {
        "sDom": 'T<"clear">frltip',
        "aaSorting": [],
        "bAutoWidth" : false,
        "sPaginationType": "full_numbers",
        "sScrollY": "550px",
        "sScrollX": "100%",
        "bFilter": true,
        "aoColumnDefs": [{ "bSearchable": false, "aTargets": [ 2 ] },{ "bSortable": false, "bSearchable": false, "aTargets": [ 12 ] },{ "bSortable": false, "bSearchable": false, "aTargets": [ 13 ] }],
        "oTableTools": {},
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": 'data/getdata',
        "fnServerParams": function ( aoData ) {

        },
        "fnRowCallback": function( nRow, aData, iDisplayIndex ){
            // Processing data like:  
            //  $('td:eq(2)', nRow ).html( 'Test' );
        }
    });

    // Hiding 5th column
    tab.fnSetColumnVis( 5, false); //Does not work.Removes the column header but not the row data.

如何讓隱藏列與 jquery 數據表中的服務器端處理一起正常工作?

我按照以下方式工作:

        fnDrawCallback: function() {
            $('td:nth-child(3),th:nth-child(3)').hide();
        }]

tab.fnSetColumnVis(3,false)將無法工作,因為它重新獲取data.Hence,必須使用簡單的舊jquery來完成它。

fnSetColumnVis()函數具有不重新綁定數據的第三個屬性(true或false)。 所以嘗試使用fnSetColumnVis(3,false,flase)可能會有所幫助。

你在設置數據表時這樣做,因此使用“ColumnDefs”,其中 targets 是你想要隱藏的列的編號:

tab = $('#'+div).dataTable( {
        "columnDefs": [{ targets: 5, visible: false }],
        "sDom": 'T<"clear">frltip',
        "aaSorting": [],
        "bAutoWidth" : false,
              ...

如果您有 2 個隱藏列,它將如下所示:

"columnDefs": [{ targets: 5, visible: false }, { targets: 6, visible: false }],

注意:列編號從 0 開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM