我是jqGrid的新手,我需要在调整Web浏览器窗口大小时调整网格大小。我已在网格中应用 autowidth : true;,shrinkToFit: true;但无法正常工作。
autowidth : true;
shrinkToFit: true;
CSS的设置width : 100%是唯一一个实现,但它不是在良好的jqGrid的情况下, 该组width中px明确的许多内部结构。
width : 100%
width
px
什么是解决它的完美方法?
jqGrid width在许多内部结构(div,表等)上使用固定值。因此,不能只设置CSS width : 100%。但是,还有另一种方法可以做到这一点。可以resize在window对象上注册事件处理程序并进行setGridWidth显式调用。该方法将jqGrid的 所有内部结构 调整为新的宽度。因此,这将是干净的方法。
resize
window
setGridWidth
如果使用,autowidth: true则jqGrid只能将jqGrid的宽度设置为其父级的宽度。在$(window).resize处理程序内部,我们可以获取父级的 新 (当前)宽度并重置grid的值width。相应的代码如下
autowidth: true
$(window).resize
$(window).on("resize", function () { var $grid = $("#list"), newWidth = $grid.closest(".ui-jqgrid").parent().width(); $grid.jqGrid("setGridWidth", newWidth, true); });
我用$("#list").closest(".ui-jqgrid")的,而不是$("#list")因为jqGrid的建立一些潜 在 的主要<table>元素。$("#list").closest(".ui-jqgrid")给出包括网格所有元素 的外部 div。
$("#list").closest(".ui-jqgrid")
$("#list")
<table>