0

我使用 jqGrid v4.4.5,我想用动态列创建它。它由“jqGridHandler.ashx”文件填充。我想通过 JSON 发送所有信息(列名,数据,...)。我在谷歌搜索它,但找不到一个好的答案。

通过单击每个节点(子)更改整个网格(操作和列...)。例如,通过单击节点 3,网格具有三列“A”和“B”以及“操作”,但通过单击节点 2 网格具有列“C”、“D”和“动作”。 在此处输入图像描述

4

2 回答 2

1

在初始化 jqGrid 之前,您需要了解 jqGrid 的 colNames 和 colModel 属性的信息。

所以简而言之,您将从您的服务器请求信息,一旦您成功检索到该信息,您就可以构建 jqGrid,然后 jqGrid 可以去获取它的数据。

以下帖子在客户端有一些示例代码: jqGrid and dynamic column binding

于 2013-04-24T13:42:10.593 回答
1

可以使用 jqGrid 创建许多不同的网格、树形网格、子网格等。了解您是要显示 10 行还是 100000 行的网格非常重要。如果您有 100000 行(或其他一些大量行),则必须实现服务器端分页和数据排序。因此,如果用户单击“下一页”按钮,则应从服务器加载下一行。为什么需要colModel在分页或排序时发送所有数据?因此,您应该清楚地了解,在服务器端场景中,只需要创建一次网格的所有结构,然后只需要刷新网格的主体。因此,一次发送所有信息(列名、列模型、数据……)将是一个糟糕的选择。

只有当您在网格中有数百或数千行并且您可以使用loadonce: true选项时,您才能每个单独的 jQuery.ajax 调用中加载所有信息(列名、列模型、数据......),然后使用创建 jqGriddatatype: "local"并使用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);
于 2013-04-24T15:12:39.623 回答