簡體   English   中英

隱藏flexigrid中的列

[英]Hide a column in flexigrid

有沒有辦法在jQuery flexigrid中隱藏和顯示這樣的列?

$('#FlexigridID').hideCol('ColumnName');
$('#FlexigridID').showCol('ColumnName');

新代碼測試:

$(function () {


    var visible = true;
    $('#yo').click(function () {
        alert('hello');

        visible = !visible;
        showColumn('#yourFlexigridNameHere', 'Lastname', visible);
    });

});


// you can put this in a separate javascript library
function showColumn(tbl, columnName, visible) {

    var grd = $(tbl).closest('.flexigrid');
    var colHeader = $('th[abbr=' + columnName + ']', grd);
    var colIndex = $(colHeader).attr('axis').replace(/col/, "");


    // queryVisible = $(colHeader).is(':visible');
    // alert(queryVisible);

    $(colHeader).toggle(visible);

    $('tbody tr', grd).each(
        function () {
            $('td:eq(' + colIndex + ')', this).toggle(visible);
        }
    );

}

HTML:

<input id='yo' type="button" />

您還可以在flexigrid的colModel設置上將hide設置為false:

colModel: [
    {display: 'Row ID', name : 'Lastname', width : 100, 
     sortable : true, align: 'left', hide: false}

您還可以針對flexigrid添加方法,您可以將其放在單獨的JavaScript庫中:

(function ($) {

    $.fn.showColumn = function (columnName, visible) {        

        if (visible == undefined) visible = true;

        var grd = this.closest('.flexigrid');        
        var colHeader = $('th[abbr=' + columnName + ']', grd);
        var colIndex = $(colHeader).attr('axis').replace(/col/, "");

        $(colHeader).toggle(visible);

        $('tbody tr', grd).each(
            function () {                
                $('td:eq(' + colIndex + ')', this).toggle(visible);
            }
        ); 
    };

    $.fn.hideColumn = function (columnName) {
        this.showColumn(columnName, false);
    }

})(jQuery);

您現在可以使用以下方法調用隱藏和顯示:

$('#FlexigridID').hideColumn('ColumnName');
$('#FlexigridID').showColumn('ColumnName');


visible = !visible; // for toggling need
$('#FlexigridID').showColumn('ColumnName', visible);

嘗試這個:

$('#FlexigridID').find("tr td").eq(columnIndex).hide();
$('#FlexigridID').find("tr td").eq(columnIndex).show();

嘗試這樣的事情

$('td:nth-child(2)').hide();

用於表頭(th)

$('td:nth-child(2),th:nth-child(2)').hide();

閱讀更多關於使用單行jQuery代碼隱藏表列的信息

$("#yourFlexigridNameHere").flexToggleCol(columnIndex, false);
//columnIndex - starts from 0

暫無
暫無

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

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