这次项目里要管理报表的摸板,但是同样的数据,可以用不同的摸板去展示。
之前是用树形结构显示,存储的摸板数据。根节点是报表摸板的ID,子节点是不同的摸板信息。
看到jqGrid有subGrid的功能,就尝试着用subGrid实现这个功能。
1:jqGrid数据是系统提供的摸板分类信息。
2:subGrid数据是一个摸板分类下,上传的摸板数据。
各画面根据指定的摸板ID,筛选出摸板数据,用户就可以根据需要,选择不同的摸板即可。
主要代码:
1:subGrid: true,
2:subGridRowExpanded事件,两个参数(subgrid_id, row_id):点击“+”号时触发。
事件内,需要初始化subgrid和navGrid,方法和初始化普通jqgrid一样,需要定义一个table,一个div。
subgrid_id是jqgrid内部生成的对象:<div id="subgrid_id" class="tablediv"></div>
用$("#" + subgrid_id).html("<table id='" + subgrid_table_id + "'></table><div id='" + pager_id + "'></div>");
把table和div作为其内部对象使用。subgrid_table_id 可自由定义,通常在subgrid_id上加上后缀,防止出现id相同的元素,pager_id 也是一样处理。
初始化subgrid和pager就不用赘述了。
3:subGridRowColapsed事件,两个参数(subgrid_id, row_id):点击“-”号时触发。
删除subGridRowExpanded内生成的table对象。
就是这么简单。
实际示例如下: