【问题标题】:Change Column width with setColProp not working使用 setColProp 更改列宽不起作用
【发布时间】:2015-03-12 16:45:57
【问题描述】:

我尝试在 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,我可以看到新的宽度,但桌子上没有任何变化。 Column 有它原来的宽度。

【问题讨论】:

    标签: asp.net ajax jqgrid


    【解决方案1】:

    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 方法。

    【讨论】:

    • 您的代码运行良好。谢谢奥列格。现在我需要弄清楚为什么如果我在 ajax 中使用代码不会改变宽度
    猜你喜欢
    • 2012-04-21
    • 2017-07-19
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多