Javascript 是否可以将jqGrid拉伸到100%?

Javascript 是否可以将jqGrid拉伸到100%?,javascript,jquery,css,jqgrid,Javascript,Jquery,Css,Jqgrid,是否可以将jqGrid的宽度设置为100%?我知道列宽必须是绝对像素大小,但我还没有找到任何方法将实际网格的宽度设置为相对大小。例如,我想将宽度设置为100%。它似乎使用了450像素的奇数大小,而不是100%。页面上有更多的水平空间,但随着列的宽度等,它将使容器(仅网格)水平滚动。有什么办法可以解决这个问题吗?看起来这是不受支持的。根据以下文件: 动态设置栅格的新宽度。参数包括: new_width是以像素为单位的新宽度 width选项的文档也没有提到可以将宽度设置为百分比 也就是说,您可以使用

是否可以将jqGrid的宽度设置为100%?我知道列宽必须是绝对像素大小,但我还没有找到任何方法将实际网格的宽度设置为相对大小。例如,我想将宽度设置为100%。它似乎使用了450像素的奇数大小,而不是100%。页面上有更多的水平空间,但随着列的宽度等,它将使容器(仅网格)水平滚动。有什么办法可以解决这个问题吗?

看起来这是不受支持的。根据以下文件:

动态设置栅格的新宽度。参数包括: new_width是以像素为单位的新宽度

width
选项的文档也没有提到可以将宽度设置为百分比


也就是说,您可以使用
autowidth
功能或类似技术为网格提供正确的初始宽度。然后按照中讨论的方法,确保在调整浏览器窗口大小时正确调整网格大小,这将模拟具有100%宽度的效果。

您可以尝试针对我在此处描述的函数来固定jqGrid的宽度。

您不能以百分比表示宽度,而如果您想根据屏幕分辨率进行设置,则如下所示:
var w=screen.width
然后在jqgrid的宽度选项中使用此变量

希望它会有用。

我最后用它来做这件事,效果很好


更新:该链接似乎已失效,但可以查看存档的文章。

autowidth:true
从3.5版开始

我在这里找到的这一功能(stackoverflow)已经记不起帖子了。我已经注释掉了高度部分,请记住(这对我来说不适用),但宽度是完美的。在php文件中的任何地方都可以使用它

loadComplete : function () {
     $("#gridId").jqGrid('setGridWidth', $(window).width(), true); 
},
$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;
$resize=尝试将宽度设置为“null”。它对我有用

$(grid).jqGrid({
   width: null,
});
这对我很有用:

width: null,
shrinkToFit: false,
简单的

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

我使用它将网格的宽度设置为父容器的宽度

function resizeGrid() {
        var $grid = $("#list"),
        newWidth = $grid.closest(".ui-jqgrid").parent().width();
        $grid.jqGrid("setGridWidth", newWidth, true);
}

我做到了这一点,工作得很有魅力

$(文档).ready(函数(){
$(“#jQGridDemo”).setGridWidth(window.innerWidth-offset);
});
我把偏移量设为50,试试这个


width:1100
替换为
autowidth:true,

我注意到仅给出了所有3个答案的组合,即, 和 帮助我实现了真正的自动调整大小

因此,我创建了一些代码,充分利用了所有这些功能,请参见下面的代码片段。我还对其进行了改进,使您可以传递单个网格对象或要调整大小的网格数组

如果您尝试过,请确保

  • 单击RunCodeSnippet,然后单击
  • 然后单击右上角的“完整页面”链接按钮
  • 调整窗口大小,观察网格如何更改其大小并自动重新对齐:

    //请参见:https://free-jqgrid.github.io/getting-started/
    //使用的CDN:https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid
    $(函数(){
    //传递一个网格或一组网格
    函数resizeGrid(jqGridObj){
    var$gridArray=Array.isArray(jqGridObj)?jqGridObj:[jqGridObj];
    
    for(设i=0;i“autowidth:true”仅将网格初始化为当前父元素的大小。调整页面大小后,一切都会变得一团糟。我使用此选项。但当我在另一个页面中使用表时,它不起作用r:(我能做什么?@Valdemar-我现在有一个解决方案,
    onSuckyAnswer:function(){alert(“随机的代码片段没有答案。请解释如何处理它们。”);}
    我仍然发现此扩展提供了与新的本机“autowidth:true”相同的结果"设置。意思是,它只会在页面渲染的初始时间影响网格。但是,如果调整页面大小,它不会更新jqGrid以匹配新的宽度。@Bhargav看起来是这样的。尽管如此,请检查archive.org:这对我有效,而autowidth没有。我有一个手风琴格式的网格,当页面加载时它不会激活。谢谢。这应该是be如果答案正确,网格将随父网格调整大小,并占据100%的宽度是的,此答案更好。即使调整父网格的大小,网格仍保持父网格的100%。此选项优于“autowidth:true”谢谢。但是你必须手动设置你的网格的每一列的大小,如果你正在使用这个……当屏幕大小改变时,列不会随着网格缩小……网格会变成水平的滚动,这对我来说是非常好的。在浏览器窗口中调整网格跟随父大小。但是考虑把节流添加到你的事件HA中。恩德勒。