3 回答
TA贡献1810条经验 获得超4个赞
现在已经在生产环境中使用了一段时间,没有任何抱怨(可能需要一些调整才能在您的网站上看起来正确。例如,减去边栏的宽度,等等)
$(window).bind('resize', function() {
$("#jqgrid").setGridWidth($(window).width());
}).trigger('resize');
TA贡献1772条经验 获得超6个赞
作为后续措施:
由于不可靠,本文中显示的先前代码最终被放弃了。我现在按照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>
添加回答
举报