使用 setColProp 更改列宽不起作用

Change Column width with setColProp not working

我尝试更改 ajax 请求中列的 宽度

 $.ajax({
    type: "POST",
    url: "Main.aspx/GetColWidth",
    data: {},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (a) {
        $("#UsersGrid").jqGrid("setColProp", "colname", {width: 100});
    }
});

如果我在调用 setColProp 后立即调用 getGridParam,我可以看到新的宽度,但 table 上没有任何变化。该列具有旧宽度。

jqGrid 不提供任何可用于在创建网格后更改 width 的方法。 setColProp 方法只是将更改应用到 colModel 的相应项目上,但*不应用网格上的更改。

尽管如此,我写了 setColWidth 允许更改列宽。您可以从 github 下载最新版本的 setColWidth,在 jquery.jqGrid.min.js 之后包含 jQuery.jqGrid.setColWidth.js 文件。之后你可以使用

$("#UsersGrid").jqGrid("setColWidth", "colname", newColumnWidth);

$("#UsersGrid").jqGrid("setColWidth", "colname", newColumnWidth, false);

在更改列的大小后不另外调整网格的宽度。第一次调用(没有 false)特别适用于使用 shrinkToFit: true 选项的情况。

您可以在 the answer 中找到使用 setColWidth 的演示,我最初为此开发了 setColWidth 方法。

更新setColWidthfree jqGrid 的一部分。因此,只需更新到最新版本的 jqGrid 即可使用 setColWidth 方法。