javascript - 隐藏 Flexigrid 中的列

标签 javascript jquery 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 设置中将隐藏设置为 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);

关于javascript - 隐藏 Flexigrid 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10278834/

相关文章:

javascript - 创建闭包编译器外部

javascript - 为什么图片没有变化?

jquery - 当我点击链接时显示带有浪费垂直空间的 div

javascript - jQuery Flexigrid 隐藏列下拉

javascript - 让 Facebook 的 react.js 库 JSX 语法与 jslint 很好地配合?

javascript - 如果第 4 个父级 hasClass,则将类添加到 DIV

JavaScript 对象原型(prototype)

javascript - 改变滑动 div 的方式和他们的事件调用者

javascript - Flexigrid:选择保留刷新的行

jquery - Flexigrid 不显示数据