小编典典

调整浏览器大小时是否调整jqGrid的大小?

javascript

调整浏览器窗口大小时,有什么方法可以调整jqGrid的大小?我已经尝试过这里描述的方法,但是该技术在IE7中不起作用。


阅读 283

收藏
2020-05-01

共1个答案

小编典典

作为后续措施:

由于不可靠,本文中显示的先前代码最终被放弃了。我现在按照jqGrid文档的建议使用以下API函数调整网格大小:

jQuery("#targetGrid").setGridWidth(width);

为了进行实际的大小调整,将实现以下逻辑的函数绑定到窗口的resize事件:

  • 使用其父级的clientWidth和(如果不可用)offsetWidth属性计算网格的宽度。

  • 执行健全性检查,以确保宽度变化超过x个像素(以解决某些特定于应用程序的问题)

  • 最后,使用setGridWidth()更改网格的宽度

这是处理大小调整的示例代码:

jQuery(window).bind('resize', function() {

    // Get width of parent container
    var width = jQuery(targetContainer).attr('clientWidth');
    if (width == null || width < 1){
        // For IE, revert to offsetWidth if necessary
        width = jQuery(targetContainer).attr('offsetWidth');
    }
    width = width - 2; // Fudge factor to prevent horizontal scrollbars
    if (width > 0 &&
        // Only resize if new width exceeds a minimal threshold
        // Fixes IE issue with in-place resizing when mousing-over frame bars
        Math.abs(width - jQuery(targetGrid).width()) > 5)
    {
        jQuery(targetGrid).setGridWidth(width);
    }

}).trigger('resize');

和示例标记:

<div id="grid_container">
    <table id="grid"></table>
    <div id="grid_pgr"></div>
</div>
2020-05-01