调整浏览器窗口大小时,有什么方法可以调整jqGrid的大小?我已经尝试过这里描述的方法,但是该技术在IE7中不起作用。
作为后续措施:
由于不可靠,本文中显示的先前代码最终被放弃了。我现在按照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>