2013-04-24 249 views
0

我使用jqGrid v4.4.5,我想用動態列創建它。 它由「jqGridHandler.ashx」文件填充。 我想通過JSON發送所有信息(列名,數據...)。 我在谷歌搜索它,但找不到一個很好的答案。通過點擊每個節點(子)更改整個網格(動作和列......)。例如,通過點擊節點3,網格有三列'A'和'B'和'動作',但通過點擊node2網格有列'C'和'D'和'動作'。 enter image description herejqGrid動態列

回答

1

一個可以使用的jqGrid創造出許多不同的網格,網格樹,子網格等。瞭解是否要顯示10行或100000行的網格非常重要。如果您有100000行(或其他大量的行),則必須實施服務器端分頁和數據排序。因此,如果用戶點擊「下一頁」按鈕,則應該從服務器加載下一行。爲什麼你需要發送所有colModel分頁或排序數據?所以你應該清楚的知道,在服務器端的情況下,一個需要創建所有的網格結構只有一次然後一個只需刷新網格的主體。因此,發送所有信息(列名,列模型,數據,......一次)是不好的選擇。

只有當你有幾百或網格中的行的幾千,你可以用loadonce: true選擇他們,你可以加載一次所有信息中的每個單獨的jQuery(列名,列模型,數據,...)。 ajax調用,然後使用datatype: "local"創建jqGrid,並使用包含所有網格數據的參數data

修訂:如果您需要更改

// in the example below the grid with id="list" will be created 
// with column having name: "c4" in colModel 
var $grid = $("#list"), columnName = "c4"; 

... 

var $colHeader = $("#jqgh_" + $.jgrid.jqID($grid[0].id) + "_" + $.jgrid.jqID(columnName)), 
    $sortingIcons = $colHeader.find(">span.s-ico"); 

// change the text displayed in the column 
$taxHeader.text("New header text"); 

// append sorting icons to the new text 
$taxHeader.append($sortingIcons); 
+0

感謝Oleg.I要顯示10行100000列格(不樹網格),並使用分頁。當客戶端點擊treeview的節點,然後更改網格結構(colName,Actions,....)。解決方案是什麼? – ZSH 2013-04-27 05:53:26

+0

@ZSH:您可以使用[子網格作爲網格](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:subgrid_as_grid)來顯示這些數據。 – Oleg 2013-04-27 09:03:09

+0

我不需要使用子網格(父和子)。我只是想能夠在jqgrid中更改動態colName,ColModel。 – ZSH 2013-04-27 10:40:07

1

在初始化jqGrid之前,您需要獲得jqGrid的colNames和colModel屬性的信息。

簡而言之,您將從服務器請求信息,一旦您成功檢索到該信息,您就可以構建jqGrid,然後jqGrid可以去取數據。

以下後對客戶端的一些示例代碼: jqGrid and dynamic column binding