能否将jqGrid的宽度设置为100%?我知道列宽必须是绝对像素大小,但我还没有找到可以设置实际网格宽度的相对大小的方法。例如,我想将宽度设置为100%。但似乎使用奇怪的450像素大小代替100%。页面上有更多水平空间,但由于列宽等原因,这将使容器(仅包含网格)水平滚动。有什么解决办法吗?
能否将jqGrid的宽度设置为100%?我知道列宽必须是绝对像素大小,但我还没有找到可以设置实际网格宽度的相对大小的方法。例如,我想将宽度设置为100%。但似乎使用奇怪的450像素大小代替100%。页面上有更多水平空间,但由于列宽等原因,这将使容器(仅包含网格)水平滚动。有什么解决办法吗?
从3.5版本开始,autowidth: true
可用。
对我来说它起作用:
width: null,
shrinkToFit: false,
我正在使用这个来将网格的宽度设置为父容器的宽度。
function resizeGrid() {
var $grid = $("#list"),
newWidth = $grid.closest(".ui-jqgrid").parent().width();
$grid.jqGrid("setGridWidth", newWidth, true);
}
尝试将宽度设置为“null”。这对我有效。
$(grid).jqGrid({
width: null,
});
我在这里找到了一个非常棒的功能(stackoverflow),但我忘记了这篇帖子的链接。我已经注释掉了高度部分,记住这一点(对我来说不起作用),但宽度很完美。将此代码放在您的PHP文件中的任何位置即可。
$resize = <<<RESIZE
jQuery(window).resize(function(){
gridId = "grid";
gridParentWidth = $('#gbox_' + gridId).parent().width();
$('#' + gridId).jqGrid('setGridWidth',gridParentWidth);
// $('#' + gridId).jqGrid('setGridHeight', //Math.min(500,parseInt(jQuery(".ui-jqgrid-btable").css('height'))));
})
RESIZE;
$("#gridId").setGridWidth($(window).width() );
看起来这个不被支持。根据setGridWidth的文档:
动态设置网格的新宽度。参数是: new_width 是像素为单位的新宽度...
width
选项的文档也没有提到可以将宽度设置为百分比。
话虽如此,您可以使用autowidth
功能或类似的技术来给网格正确的初始宽度。然后按照resize-jqgrid-when-browser-is-resized中讨论的方法,在浏览器窗口大小调整时确保网格被正确地调整大小,这将模拟具有100%宽度的效果。
尝试这个:
将 width: 1100
替换为 autowidth: true,