我使用jqGrid v4.4.5,我想用动态列创建它。 它由“jqGridHandler.ashx”文件填充。 我想通过JSON发送所有信息(列名,数据......)。 我在Google上搜索它但找不到合适的答案。
通过单击每个节点(子)更改整个网格(操作和列...)。例如,通过单击node3,网格有三列'A'和'B'和'actions'但是通过单击node2网格有“C”,“D”和“动作”列。
答案 0 :(得分:1)
在初始化jqGrid之前,您需要获取jqGrid的colNames和colModel属性的信息。
简而言之,您将从服务器请求信息,一旦您成功检索到该信息,您就可以构建jqGrid,然后jqGrid可以获取它的数据。
以下帖子在客户端有一些示例代码: jqGrid and dynamic column binding
答案 1 :(得分: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);