打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jqGrid 冻结列的的方法,需要二步

    开发者很容易冻结/锁定jqGrid的一些列。锁定的列不会滚动出可见区域当滚动jqGrid的水平滚动条时,这样如果有很多列grid出现水平滚动条时,可以保持某些列始终可见。

设置

  首先需要设置哪些列需要冻结或者锁定,可以在colModel中设置frozen:true,下面为示例

-收缩JavaScript代码
jQuery("#grid").jqGrid({
//...
   colNames: ['Date', 'Client', 'Amount', 'Tax', 'Total', 'Closed', 'Shipped via', 'Notes'],
   colModel: [
         {name: 'name', index: 'name', width: 70, frozen:true },
         {name: 'invdate', index: 'invdate', width: 80, align: 'center', sorttype: 'date',
            formatter: 'date', formatoptions: {newformat: 'd-M-Y'}, datefmt: 'd-M-Y', frozen:true},
         {name: 'name', index: 'name', width: 70 },
         {name: 'amount', index: 'amount', width: 75, formatter: 'number', sorttype: 'number', align: 'right'},
         {name: 'tax', index: 'tax', width: 75, formatter: 'number', sorttype: 'number', align: 'right'},
         {name: 'total', index: 'total', width: 75, formatter: 'number', sorttype: 'number', align: 'right'},
         {name: 'closed', index: 'closed', width: 75, align: 'center', formatter: 'checkbox',
            edittype: 'checkbox', editoptions: {value: 'Yes:No', defaultValue: 'Yes'}},
         {name: 'ship_via', index: 'ship_via', width: 100, align: 'center', formatter: 'select',
            edittype: 'select', editoptions: {value: 'FE:FedEx;TN:TNT;IN:Intim', defaultValue: 'Intime'}},
         {name: 'note', index: 'note', width: 70, sortable: false}
    ],
    rowNum: 10,
    rowList: [5, 10, 20],
 //...
});

  然后调用执行冻结/锁定的方法

-收缩JavaScript代码
jQuery("#grid").jqGrid('setFrozenColumns');

  注意frozen属性需要连续的,如果某列没有设置frozen属性,则从第一个设置了frozen的列开始锁定(Note that the frozen property should be set one after other. If there is a missing frozen property in the sequence then the last position which meet this criteria will be used.)【这里说的好像是从最后开始设置满足的序列开始,但是下面的列子说的确是第一个】

  下面的代码只锁定第一列,尽管第三列也设置了frozen。(The below code will lock only the first column instead that you have set the third field to be frozen:)

-收缩JavaScript代码
..
jQuery("#grid").jqGrid({
...
   colNames: ['Date', 'Client', 'Amount', 'Tax', 'Total', 'Closed', 'Shipped via', 'Notes'],
   colModel: [
         {name: 'name', index: 'name', width: 70, frozen:true },
         {name: 'invdate', index: 'invdate', width: 80, align: 'center', sorttype: 'date',
            formatter: 'date', formatoptions: {newformat: 'd-M-Y'}, datefmt: 'd-M-Y'},
         {name: 'name', index: 'name', width: 70, frozen:true},
         {name: 'amount', index: 'amount', width: 75, formatter: 'number', sorttype: 'number', align: 'right'},
         {name: 'tax', index: 'tax', width: 75, formatter: 'number', sorttype: 'number', align: 'right'},
         {name: 'total', index: 'total', width: 75, formatter: 'number', sorttype: 'number', align: 'right'},
         {name: 'closed', index: 'closed', width: 75, align: 'center', formatter: 'checkbox',
            edittype: 'checkbox', editoptions: {value: 'Yes:No', defaultValue: 'Yes'}},
         {name: 'ship_via', index: 'ship_via', width: 100, align: 'center', formatter: 'select',
            edittype: 'select', editoptions: {value: 'FE:FedEx;TN:TNT;IN:Intim', defaultValue: 'Intime'}},
         {name: 'note', index: 'note', width: 70, sortable: false}
    ],
    rowNum: 10,
    rowList: [5, 10, 20],
 ...
});
jQuery("#grid").jqGrid('setFrozenColumns');

销毁

  使用 destroyFrozenColumns方法取消(销毁)锁定列。此方法在调用setupFrozenColums前还原表格配置。

-收缩JavaScript代码
jQuery("#grid").jqGrid('destroyFrozenColumns');

动态设置

  可以动态改变冻结的列,需要先调用destroyFrozenColumns 方法设置新冻结属性,然后再次调用 setFrozenColumns。示例给出如何将invdate列设置为冻结的列

-收缩JavaScript代码
jQuery("#mybutton").click(function(){
   jQuery("#grid")
   .jqGrid('destroyFrozenColumns');
   .jqGrid('setColProp','invdate', {frozen:true});
   .jqGrid('setFrozenColumns');
   .trigger('reloadGrid', [{current:true}]);
});
  要使配置生效需要调用 trigger('reloadGrid').。

限制

下面限制告诉你冻结的列不能设置,失效

  • 启用了树形表格时( TreeGrid )
  • 启用了子表格(SubGrid)
  • 启用了单元格编辑(cellEdit)
  • 使用行编辑,冻结的列不能为编辑
  • 设置了可排序的列,jqGrid的sortable设置为true或者方法
  • scroll配置为true或者1
  • 启用了数据分组
  • 启用页脚数据行(footerrowcab参数)

来源:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:frozencolumns

   

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
jqGrid页头分组
jQGrid动态列
jqGrid点滴
jqGrid列表过宽时滚动条自动出来的属性
2、jqGrid 3.6.2 中文文档——安装jqGrid(2)
jqgrid学习笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服