`
小杨学JAVA
  • 浏览: 900205 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jqGrid Subgrid

    博客分类:
  • js
 
阅读更多

转:http://www.coding123.net/article/20130707/jqGrid-subGrid-config.aspx

有些时候需要显示(或者编辑)父表格中选中行的子元素,jqGrid两种操作方法操作子记录。

  • 子表格(subGrid)
  • 一个grid对象作为子表格(subGrid)

安装

要使用这个方法,需要在下载页面勾选Subgrid后再下载jqGrid,下载地址:http://www.trirand.com/blog/?page_id=6。源文件grid.subgrid.js在src目录中。

属性

SubGrids使用父表格中如下属性,事件和方法,即这些属性可以用在父表格中配置。

属性 类型 描述 默认值
subGrid boolean 设置为true启用子表格。如果启用子表格,在父表格的左边会添加附加的列。此列包含一个“加”图片表示用户可以点击它展开行,默认所有行的子表格是收缩的。 false
subGridOptions object 子表格的配置,下面为配置的默认值
-收缩JavaScript代码
{
plusicon : "ui-icon-plus",
minusicon : "ui-icon-minus",
openicon: "ui-icon-carat-1-sw",
expandOnLoad: false,
selectOnExpand : false,
reloadOnExpand : true
}
  • plusicon  minusicon :定义展开/收缩子表格的图标。名字需要从设置的主题中选出
  • openicon :行展开时,显示在 minusicon 下的图标
  • expandOnLoad :设置为true,当子表格数据加载完毕后自动展开(when set to true make it so that all rows will be expanded automatically when a new set of data is loaded. )
  • selectOnLoad :设置为true,点击展开图标(plusicon)将会选择父表格中的此行数据
  • reloadOnExpand :设置为false,展开时仅加载一次数据,随后的点击图标点击操作只是显示或者隐藏子表格,而不会再发送ajax重新获取数据
 
subGridModel array 仅当subGrid设置为grud有效,描述子表格数据的列模型(column model),语法
-收缩JavaScript代码
subGridModel : [
{ name : ['name_1','name_2',…,'name_n'],
width : [width_1,width_2,…,width_n] ,
align : ['left','center',…,'right'] ,
params : [param_1,…,param_n],
mapping:['name_1_map','name_2_map',…,'name_n_map']}
  • name:子表格列表头显示的标签内容
  • width:列宽数组,需要和name数组长度一致
  • align: 列对其方式,可以为left,center,right。不设置默认为left
  • params:给subGridUrl配置增加的附加参数(an array in which we can add a name from main grid's colModel to pass as additional parameter to the subGridUrl.)
  • mapping:子表格中的repeatitems设置为false时使用。用于定义子表格数据列名称的映射。不设置此参数,则使用name配置作为映射。
 
subgridtype mixed 设置子表格可以作为服务加载(This option allow loading subgrid as a service.)。没有设置此项,将使用父表格的datatype配置,参考下面的示例 null
subGridWidth integer 设置子表格宽度 20
subGridUrl string 配置子表格数据源url地址。jqGrid添加父行id作为参数添加传递到这个url地址。 如果不需要传递附加参数,要传递附加参数,可以配置subGridModel中的params。 empty string
ajaxSubgridOptions object 设置子表格ajax请求数据时的全局配置。会重写子表格中当前的所有ajax请求配置,包括complete事件。 empty object

  要配置子表格,需要同时配置xmlReader或者jsonReader中的subGrid配置项,xmlReader默认配置如下

-收缩JavaScript代码
xmlReader : {
...
   subgrid: {
      root: "rows"
      row: "row"
      repeatitems: true
      cell: "cell"
   }
}

 jsonReader

-收缩JavaScript代码
jsonReader : {
...
   subgrid: {
      root: "rows"
      repeatitems: true
      cell: "cell"
   }
}

  映射规则和父表格一样,更多信息参考:
jqGrid XML数据源读取器选项配置
jqGrid JSON数据源读取器选项配置
jqGrid datatype配置为function
jqGrid自定义数据

  为了将子表格作为服务器,subGridType需要设置正确(In order to use correct subGridType as service ),下面示例展示实现

-收缩JavaScript代码
jQuery("#grid_id").jqGrid({
...
   subgridtype: function(rowidprm) {
      jQuery.ajax({
         url:'url_to_the_service',
         data:rowidprm,
         dataType:"json",
         complete: function(jsondata,stat){
            if(stat=="success") {
               var thegrid = jQuery("#grid_id")//[0];
               thegrid.subGridJson(eval("("+jsondata.responseText+")"),rowidprm.id);
            }
         }
      });
   },subgrid
...
});

  参数 rowidprm 为键值对对象包含被展开行的id,设置subGridModel配置的其他的参数,subGridJson方法将在下面介绍。

事件

事件参数说明

  • pID:放置子表格内容的div元素的唯一id
  • id: 数据行id
  • sPostData:子表格发送请求时提交的数据
Event Parameters Description
subGridBeforeExpand pID, id 展开子表格前触发。需要返回true/false,返回false阻止展开子表格
subGridRowExpanded pID, id 展开子表格后触发,用于想子表格添加自定义的数据
subGridRowColapsed pID, id 收缩子表格后触发,需要返回true/false,返回false不收缩子表格
serializeSubGridData sPostData 序列化传递给ajax请求的数据,需要返回序列化后的数据。当需要向服务器传递自定义数据时使用,如json/xml格式的字符串等。

Methods

方法 参数 返回值 描述
expandSubGridRow rowid jqGrid object 动态展开指定rowid的行的子表格
collapseSubGridRow rowid jqGrid object 动态收缩指定rowid的行的子表格
toggleSubGridRow rowid jqGrid object 动态切换指定rowid的行的子表格的展开/收缩状态
subGridJson json, rowid false 向子表格添加数据,json对对象,rowid为需要添加的数据行id
subGridXml xml, rowid false

向子表格添加数据,xml为xml dom节点,rowid为需要添加的数据行id

示例

显示每行数据中的详细数据

-收缩JavaScript代码
jQuery(document).ready(function(){ 
  jQuery("#list").jqGrid({
    url:'example.php',
    datatype: 'xml',
    mtype: 'GET',
    colNames:['Inv No','Date''Amount','Tax','Total','Notes'],
    colModel :[ 
      {name:'invid', index:'invid', width:55}, 
      {name:'invdate', index:'invdate', width:90}, 
      {name:'amount', index:'amount', width:80, align:'right'}, 
      {name:'tax', index:'tax', width:80, align:'right'}, 
      {name:'total', index:'total', width:80, align:'right'}, 
      {name:'note', index:'note', width:150, sortable:false
    ],
    pager: '#pager',
    rowNum:10,
    rowList:[10,20,30],
    sortname: 'invid',
    sortorder: 'desc',
    viewrecords: true,
    caption: 'My first grid',
    subGrid: true,
    subGridUrl : "subgrid.php",
    subGridModel : [ 
      {
      name  : ['No''Item''Qty''Unit''Line Total'],
      width : [55, 200, 80, 80, 80],
      align : ['left','left','right','right','right'],
      params: ['invdate'
      }
    ]
  }); 
}); 
分享到:
评论

相关推荐

    jqgrid-subgrid

    jqgrid-subgrid支持数据的分层显示,样式也可以自己调整

    MVC4+JQGRID_SubGrid+JSTREE+JSON(DEMO)

    【MVC4+JQGRID+SubGrid+JSTREE+JSON(DEMO)】这是一个基于C#的MVC4框架的示例项目,它利用了JQGRID的子网格(SubGrid)功能以及JSTREE插件,展示了如何在Web应用中实现数据的交互和展示。同时,该项目还包含了JSON...

    深入研究jqgrid

    - `jqGrid SubGrid`可以为每一行添加展开/折叠子表格的功能,便于查看详细信息。 - `jqGrid Form Editing`提供了弹出式或内联编辑模式,方便用户对数据进行编辑操作。 **四、Nova_CN与jqGrid** `Nova_CN`可能是指...

    jqGrid_API中文

    除了基本功能,jqGrid还有许多第三方扩展,如`jqGrid Footer`(添加表格底部行)、`jqGrid Subgrid`(子表格)和`jqGrid TreeGrid`(树形结构表格)等,这些扩展增强了jqGrid的功能和适用性。 ### 6. 版本更新与...

    jqGrid中文文档.doc

    通过 jqGrid 网站的下载生成器,可以选择需要的组件,如 base、editing、subgrid、treegrid、import/export 和 user contributed modules。这些组件会被合并成一个 minified javascript 文件 —— jquery.jqGrid.min...

    jqGrid 离线帮助手册

    jqGrid 最新版 3.7.2 离线帮助手册,方便各位查看 Installing jqGrid Before you begin System Requirements Download jqGrid Change Log How to Install How it Works My First Grid Basic Grid Conventions ...

    实现jqGrid三级表头功能,支持冻结,拖动

    每个列对象可以包含一个`subgrid`属性,这个属性可以是一个对象,其中包含更多的列信息,形成多级结构。同时,我们还需要在HTML中创建对应的`<thead>`结构,确保每个单元格都正确地嵌套。 接下来,我们讨论冻结列的...

    jquery.jqGrid-4.0.0

    例如,"subgrid" 插件允许在一个单元格内嵌套另一个表格,"navigator" 插件则提供了包括新增、编辑、删除、查看等操作的导航栏,极大地提升了用户体验。 最后,js 文件夹包含 jqGrid 的主 JavaScript 文件,这是在...

    jqGrid 3.6

    5. 子网格(Subgrid):jqGrid 支持子网格功能,即在一个表格行下展开另一个表格,用于展示详细信息或相关数据,提高数据展示的层次感。 6. 自定义按钮(Custom Buttons):用户可以通过 custbutt.html 和 custbutt...

    jquery.jqGrid-4.5.4

    2. `plugins`:包含各种插件,如`subgrid`、`treegrid`等,扩展了jqGrid的功能。 3. `js`:jqGrid的核心JavaScript文件,如`grid.base.js`、`grid.common.js`等,提供了主要的表格操作逻辑。 4. `src`:源码目录,...

    jquery.jqGrid-4.3.2.zip

    - **plugins**:插件目录存放了扩展jqGrid功能的各种插件,如`subgrid`用于子网格,`treegrid`用于树形结构展示,`navigator`提供额外的导航按钮,如添加、删除、编辑等。 - **js**:JavaScript代码的核心部分,...

    jqGrid 离线帮助手册 来源官方wiki

    jqGrid 3.7.2 版本 官方完整帮助手册,含有很多代码样例,方便大家查看学习。 Upgrading Upgrade from 3.6.4 to 3.6.5 Upgrade from 3.4.x to 3.5 Installing jqGrid Before you begin System Requirements Download...

    jquery jqGrid 4 7 1 zip下载 css js plugins src

    | grid subgrid js | grid tbltogrid js | grid treegrid js | jqDnR js | jqModal js | jquery fmatter js | jquery jqGrid js | JsonXml js">css | ellipsis xbl xml | ui jqgrid css js | i18n | grid locale en ...

    jqGrid使用帮助[参照].pdf

    7. grid.subgrid.js:一个处理表格的插件。 8. grid.postext.js:一个可以用来操作 post 数据的包。 9. jqModal.js:模态对话框的编辑。 10. jqDnR.js:可拖拉的表格编辑。 11. themes:包含了 jQgrid 需要的样式表...

    jqGrid插件--JQuery表格插件

    9. **插件扩展**:jqGrid有丰富的插件系统,如`subgrid`用于嵌套表格,`treegrid`实现树形结构,`navigator`提供额外的操作按钮等。在`plugins`目录下的文件即为这些插件的实现。 10. **版本更新与社区支持**:...

    jquery.jqGrid-4.4.4.zip

    `subgrid.js` 和 `treegrid.js` 分别用于子网格和树形网格的实现。开发者可以根据需求选择并引入相应的插件,以增强表格的功能性。 3. **JS 文件**: JavaScript 文件夹包含jqGrid的核心脚本。`jquery.jqGrid.min....

    jqGrid 3.6 中文

    - **子表格**(可能关联`subgrid_grid.html`):jqGrid支持在一个表格行内嵌套另一个表格,展示层级数据。 - **主子表**(可能关联`masterex.html`):主表格与子表格联动,操作主表格时可以影响子表格的数据。 2...

    jqGrid_各种参数_详解

    * subGrid:设置表格的子网格。 * subGridModel:设置表格的子网格模型。 * toppager:设置表格的顶部分页器。 * treeGrid:设置表格的树形网格。 * treeGridModel:设置表格的树形网格模型。 * viewrecords:设置...

Global site tag (gtag.js) - Google Analytics