FreeJqGrid:如何在.show()事件后调整整个网格的大小

时间:2016-06-03 15:27:09

标签: jquery jqgrid free-jqgrid

我使用FreeJqGrid,我无法解决我的问题。我有两个div,一个用于收集信息,另一个用于在freejqGrid中显示此收集的结果。

第一个div是可见的,第二个div是隐藏的,当我切换这些div时,我的网格不是全宽。见Link。那么我该怎样才能调整它呢?我在SOF中尝试了许多像grid.trigger一样的回答('调整大小')但没有任何效果。以下是我构建网格的方法:

grid.jqGrid({
    data: myData,
    colNames: ["Matricule","ID CICP","Nom Prénom", "N° de Sécurité Sociale", "Date entée", "Date sortie",  "Adhérent"],
    colModel: [
        {
            name: "matricule", template: 'string', align:'center'
        },
        {
            name: "idEmpl", template: 'string', align:'center'
        },
        {
            name: "name", template: 'string', align:'center',
            jsonmap: function (item) {
                return item.name.first + " " + item.name.last;
            },
            sorttype: function (cell) {
                return cell.last + " " + cell.first;
            }
        },
        {
            name: "numSecu", template: 'string', align:'center'
        },
        {
            name: "dateEntree", formater: 'date', sorttype: "date", formatoptions:{newformat: 'dd-mm-yy'}, align:'center'
        },
        {
            name: "dateSortie", formater: 'date', sorttype: "date", formatoptions:{newformat: 'dd-mm-yy'}, align:'center'
        },
        {
            name: "adherent", template: 'string', align:'center'
        }
    ],
    onSelectRow: function(rowid){
        //blabla
    },
    autowidth: true,
    sortname: "name",
    shrinkToFit: false
});

只有当我使用jQuery的.show()和.hide()事件时才会出现此问题。

1 个答案:

答案 0 :(得分:1)

您可以使用onShowHideCol回调或"jqGridShowHideCol"事件在 showColhideCol后执行操作。例如,您可以使用

var resizeGrid = function () {
        grid.jqGrid("setGridWidth", grid.closest(".ui-jqgrid").parent().width());
    };

// resize the grid on showing/hiding columns
grid.bind("jqGridShowHideCol", function () {
    resizeGrid();
});

// resize the grid on resizing the window
$(window).bind("resize", function () {
    resizeGrid();
});

有关在调整窗口大小时调整网格大小的代码示例,请参阅the answerthis one。请参阅the demothis one