jqGrid 动态设置 colModels 和 colNames
jqGrid setting colModels and colNames dynamically
如果要设置,真的有必要卸载$("#myGrid").jqGrid('GridUnload');
吗又是它的colModels
和colNames
?或者我应该说这是实施的唯一方法jqGrid的动态列?虽然我已经尝试过那个并且它奏效了。但是我也尝试了jqGrid的setGridParam
,但是当我放置colModels/colNames时它不起作用。
这是我除了卸货之外所做的
$.ajax({
url : url, //url the returns formatted colModels/colNames and other data
data : data,
async : false,
success : function(data){
$("#myGrid").setGridParam({
url : "xx/xxx/xx.json",
page : 1,
postData : {
.
.
.
},
colNames : data.returnedColNames,
colModel : data.returnedColModels,
rowNum : 50,
pager: '#myGridPager',
}).trigger("reloadGrid");
}
});
但是我得到和错误像Uncaught TypeError: Cannot read property 'formatter' of undefined
对这种方法有什么想法吗?提前致谢
jqGrid 在创建网格期间创建一些列结构。例如,如果一个人创建了一次网格,则无法更改列数。另一方面,您可以隐藏一些不需要的列。colModel
的设置不会更改列标题。另一方面,您可以使用setLabel
方法动态更改列标题。colModel
的最多值可以是更改。主要限制是:列数应相同。另一个限制:不应更改列name
属性的值,因为该属性将用于生成列标题的 ID。如果使用repeatitems: false
样式的数据类型,则可以动态设置jsonmap
或xmlmap
属性不变name
列的属性。按setGridParam
更改width
属性不会更改现有列的宽度。另一方面,您可以使用我在答案中建议setColWidth
方法,您可以从此处下载。因此,您可以创建具有足够多列的网格,并将其他列设置为隐藏。
答案提供了您提出的90%的解决方案。我在beforeProcessing
内部修改colModel
.其他答案包含您需要的解决方案的简短描述。