jqgrid 4.6 拖动表格后 宽度不能滑动
时间: 2024-03-09 11:46:46 浏览: 71
在 jqGrid 4.6 版本中,如果表格的列宽度设置为百分比(例如 `width: "50%"`),并且表格宽度不足以容纳所有列时,拖动表格后可能会导致列宽度不能滑动。
解决方法是在 `gridComplete` 事件中重新计算表格宽度,并将其设置为固定值。具体实现方法如下:
1. 在 `gridComplete` 事件中获取表格的宽度和列的宽度,并计算出每个列的实际宽度。
```javascript
gridComplete: function() {
var $grid = $(this);
var gridWidth = $grid.width();
var colModel = $grid.jqGrid('getGridParam', 'colModel');
var colWidths = [];
for (var i = 0; i < colModel.length; i++) {
var colWidth = colModel[i].width;
if (typeof colWidth === 'string' && colWidth.indexOf('%') >= 0) {
colWidth = Math.floor(gridWidth * parseInt(colWidth) / 100);
}
colWidths.push(colWidth);
}
$grid.jqGrid('setGridWidth', gridWidth);
$grid.jqGrid('setGridParam', {colModel: colModel, colWidths: colWidths});
}
```
2. 调用 `setGridWidth` 方法将表格的宽度设置为原始宽度,这样就可以使列宽度滑动了。
3. 调用 `setGridParam` 方法将重新计算后的列宽度设置为表格的列宽度。这里需要注意的是,如果表格的列宽度是通过 `colModel` 属性设置的,需要将 `colModel` 和 `colWidths` 参数都设置为重新计算后的值。
完成上述步骤后,就可以使表格的列宽度滑动了。
阅读全文