我尝试在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 ,我可以看到新的宽度,但表上没有任何变化。列的宽度很宽。
答案 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
的演示。
更新:setColWidth
是free jqGrid的一部分。因此,只需更新到最新版本的jqGrid即可使用setColWidth
方法。