解决 jqgrid 只冻结标题不冻结列的问题
时间: 2023-08-20 07:04:04 浏览: 94
要解决 jqgrid 只冻结标题不冻结列的问题,可以使用 jqgrid 自带的固定列功能。具体实现方法如下:
1. 首先,在 jqgrid 的 colModel 中,定义需要固定的列的属性:
```
colModel:[
{name:'id', index:'id', width:50, fixed:true},
{name:'name', index:'name', width:100},
{name:'age', index:'age', width:50, fixed:true},
{name:'address', index:'address', width:150},
...
]
```
在上面的例子中,id 和 age 列被设置为固定列,其他列则不固定。
2. 接下来,在 jqgrid 的 gridComplete 事件中,添加以下代码:
```
gridComplete: function() {
var grid = $(this);
var ids = grid.getDataIDs();
for (var i = 0; i < ids.length; i++) {
grid.jqGrid('setRowData', ids[i], { 'id': ids[i] }, { height: 40 });
}
}
```
这段代码的作用是,对每一行数据添加一个与 id 列对应的固定列,这样就可以实现固定列的效果了。
需要注意的是,在使用固定列功能时,需要将表格的宽度设置为固定值,否则会出现列宽度不匹配的问题。可以使用以下代码来设置表格宽度:
```
autowidth: false,
width: 800,
```
其中,width 参数设置表格的宽度,autowidth 参数设置为 false,表示关闭自动计算表格宽度的功能。
阅读全文