JQGrid列自定义..在运行时添加列

时间:2013-03-13 07:00:55

标签: jquery jqgrid

我是J Query的新手,我在http://www.trirand.com/blog/jqgrid/jqgrid.html中尝试了一些示例。我看到列名用JS编写,显示在Grid中。

我有要求在JQGrid上显示每次搜索的列。

示例:我有一组标准的列显示在Grid Like学生姓名,地址,电话号码中。

假设用户按学生ID搜索我需要将学生ID作为列添加到结果中。

我应该表现出像

"student name, Address,Phone number,StudentID"

如果他们按总计搜索

我应该表现出像

"student name, Address,Phone number,Total"

为了简化,我需要在用户点击搜索后向JQGrid添加一列。

我可以在JQGrid中这样做吗?我该如何实现呢?

2 个答案:

答案 0 :(得分:1)

此答案取自较早版本的Oleg's answer here

  

无法动态地向jqGrid添加列。您必须使用colModel重新创建整个网格,其中包含更多列。如果使用单独的colNames,则必须增加数组的大小。例如,您可以使用GridDestroy来销毁现有网格。您实际上可以正常绑定一个额外的列,但您可以使用jquery在运行时显示/隐藏它们。因此,您只需添加一个列,然后根据您的要求隐藏/显示它。

        $("#grid").showCol("column_name");
        $("#grid").hideCol("column_name");

答案 1 :(得分:0)

我相信你从数据库中获得了额外的列,这是记录集的一部分。

检查这个小提琴

http://jsfiddle.net/jqwidgets/6X3EZ/

现在在上面的链接中,您可以看到按钮点击列可以并且确实会被更改。

您现在需要做的就是,在代码中获取记录集的部分,编写一个带有var列的脚本元素,并在此变量中称为columns,填充jqxgrid的列名和相关参数。

完成后,在准备好文档的地方添加变量。

$("#jqxgrid").jqxGrid({
 width: 500,
 theme: 'energyblue',
 source: adapter,
 columns: columns});

希望这会有所帮助。