jqgrid表格高度宽度设置

# jqgrid表格高度宽度设置


## 问题说明


> 页面上使用上面搜索框,下面是jqgrid表格形式,总是出现,grid表格加载宽度、高度问题。本文通过主要解决表格高度宽度变化适应的问题。


## grid宽度


1. 修改文件jeesite.min.js,里面的 `changeGridTable`


```
$.changeGridTable = {
        changeStyle: function (table) {
            var t = this;
            setTimeout(function(){
                t.styleCheckbox(table);
                t.updateActionIcons(table);
                t.updatePagerIcons(table);
                t.enableTooltips(table);
            }, 0);
        },
        changeSize:function(tableId,callback){
            var changeGridWidth = function(gridWidth){
                $.each(tableId,function(i,n){
                    $(n).jqGrid('setGridWidth',gridWidth);
                });
            };
//子表格自适应宽度
var changeSubGridWidth = function () {
//判读是否存在子表
var subTable = $(tableId[0]).find('tr.ui-subgrid table.ui-jqgrid-btable.ui-common-table');
if (subTable.length < 1) {
return;
}
$.each(subTable, function (i, n) {
//暂时未处理  grid_selector + " ~ .widget-box" 的情况 ???
$(n).jqGrid('setGridWidth', $(n).closest('div.tablediv').width());
});
};
            //resize to fit page size
            var parent_column = $(tableId[0]).closest('[class*="col-"]');
            $(window).off('resize.jqGrid').on('resize.jqGrid', function () {
//if (callback != undefined) {
// callback();
//}
console.log(parent_column.width());
changeGridWidth(parent_column.width());
changeSubGridWidth();
//todo lijunjie 测试 调整高度最后执行
                if(callback != undefined){
                callback();
                }
            });
            
            //resize on sidebar collapse/expand
            $(document).on('settings.ace.jqGrid' , function(ev, event_name, collapsed) {
                if( event_name === 'sidebar_collapsed' || event_name === 'main_container_fixed' ) {
                    //setTimeout is for webkit only to give time for DOM changes and then redraw!!!
                    setTimeout(function() {
                        changeGridWidth(parent_column.width());
changeSubGridWidth();
                    }, 0);
                }
            });
            
            //如果你的表格在其他元素(举例:tab pane)里,你需要使用父元素的宽度:
    /**
    $(window).on('resize.jqGrid', function () {
    var parent_width = $(grid_selector).closest('.tab-pane').width();
    $(grid_selector).jqGrid( 'setGridWidth', parent_width );
    })
    //and also set width when tab pane becomes visible
    $('#myTab a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
      if($(e.target).attr('href') == '#mygrid') {
    var parent_width = $(grid_selector).closest('.tab-pane').width();
    $(grid_selector).jqGrid( 'setGridWidth', parent_width );
      }
    })
    */
            
            $(window).triggerHandler('resize.jqGrid');//trigger window resize to make the grid get the correct size
        },
        
        //it causes some flicker when reloading or navigating grid
        //it may be possible to have some custom formatter to do this as the grid is being created to prevent this
        //or go back to default browser checkbox styles for the grid
        styleCheckbox:function(table){
             $(table).find('input:checkbox').addClass('ace').wrap('

你可能感兴趣的:(js)