[英]jqGrid setting colModels and colNames dynamically
是否真的有必要卸載$("#myGrid").jqGrid('GridUnload');
如果你想再次設置它的colModels
和colNames
? 或者我應該說它是實現jqGrid動態列的唯一方法嗎? 雖然我已經嘗試了那個並且它有效。 但是我也嘗試了setGridParam
的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
一樣的錯誤Uncaught TypeError: Cannot read property 'formatter' of undefined
關於這種方法的任何想法? 提前致謝
jqGrid在創建網格期間創建一些列結構。 例如,如果一個人創建了網格,則無法更改列數。 另一方面,您可以隱藏一些不需要的列。 設置colModel
不會更改列標題。 另一方面,您可以使用setLabel
方法動態更改列標題。 colModel
可以是更改。 主要限制是:列數應該相同。 另一個限制:您不應更改列的name
屬性的值,因為該屬性將用於生成列標題的ID。 如果使用repeatitems: false
樣式數據,則可以動態設置jsonmap
name
屬性unchanges的列的jsonmap
或xmlmap
屬性。 通過setGridParam
更改width
屬性不會更改現有列的寬度。 另一方面,你可以使用我在答案中建議的setColWidth
方法,你可以從這里下載。 因此,您可以創建具有足夠數量列的網格,並將其他列設置為隱藏。
答案提供了90%的解決方案。 我修改了beforeProcessing
colModel
。 其他答案包含您需要的解決方案的簡短描述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.