簡體   English   中英

jqGrid動態設置colModels和colNames

[英]jqGrid setting colModels and colNames dynamically

是否真的有必要卸載$("#myGrid").jqGrid('GridUnload'); 如果你想再次設置它的colModelscolNames 或者我應該說它是實現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的列的jsonmapxmlmap屬性。 通過setGridParam更改width屬性不會更改現有列的寬度。 另一方面,你可以使用我在答案中建議的setColWidth方法,你可以從這里下載。 因此,您可以創建具有足夠數量列的網格,並將其他列設置為隱藏。

答案提供了90%的解決方案。 我修改了beforeProcessing colModel 其他答案包含您需要的解決方案的簡短描述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM