小编典典

使jqGrid在Web浏览器上响应的方法

css

我是jqGrid的新手,我需要在调整Web浏览器窗口大小时调整网格大小。我已在网格中应用 autowidth : true;shrinkToFit: true;但无法正常工作。

CSS的设置width : 100%是唯一一个实现,但它不是在良好的jqGrid的情况下,
该组widthpx明确的许多内部结构。

什么是解决它的完美方法?


阅读 338

收藏
2020-05-16

共1个答案

小编典典

jqGrid width在许多内部结构(div,表等)上使用固定值。因此,不能只设置CSS width : 100%。但是,还有另一种方法可以做到这一点。可以resizewindow对象上注册事件处理程序并进行setGridWidth显式调用。该方法将jqGrid的
所有内部结构 调整为新的宽度。因此,这将是干净的方法。

如果使用,autowidth: true则jqGrid只能将jqGrid的宽度设置为其父级的宽度。在$(window).resize处理程序内部,我们可以获取父级的
(当前)宽度并重置grid的值width。相应的代码如下

$(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。

2020-05-16