为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

3 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

现在已经在生产环境中使用了一段时间,没有任何抱怨(可能需要一些调整才能在您的网站上看起来正确。例如,减去边栏的宽度,等等)


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

    $("#jqgrid").setGridWidth($(window).width());

}).trigger('resize');


查看完整回答
反对 回复 2019-11-25
?
梦里花落0921

TA贡献1772条经验 获得超5个赞

作为后续措施:


由于不可靠,本文中显示的先前代码最终被放弃了。我现在按照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>


查看完整回答
反对 回复 2019-11-25
  • 3 回答
  • 0 关注
  • 661 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信