使用setColProp更改列宽不起作用

时间:2015-01-14 13:22:48

标签: asp.net ajax jqgrid

我尝试在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 ,我可以看到新的宽度,但表上没有任何变化。列的宽度很宽。

1 个答案:

答案 0 :(得分:3)

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

然而我写了setColWidth,它允许更改列宽。您可以从github下载最新版本的setColWidth,在jQuery.jqGrid.setColWidth.js之后添加jquery.jqGrid.min.js文件。之后你可以使用

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

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

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

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

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