如何实现jqgrid拖动表格时,原拖动位置显示虚线
时间: 2024-04-14 17:26:35 浏览: 114
要实现 jqGrid 表格拖动时显示虚线,可以使用以下步骤:
1. 首先,确保你已经引入了 jQuery UI 库,因为 jqGrid 使用了其中的拖放功能。
2. 在 jqGrid 初始化的代码中,添加 `sortable: true` 属性来启用表格的拖动排序功能。
```javascript
$("#grid").jqGrid({
// 其他配置项...
sortable: true,
// 其他配置项...
});
```
3. 添加以下 CSS 样式来显示虚线效果:
```css
.ui-sortable-helper {
border: 1px dashed #999;
}
```
这将为拖动时的辅助元素添加一个虚线边框。
4. 如果你想自定义虚线边框的样式,可以根据需要修改 `.ui-sortable-helper` 的样式。
完成上述步骤后,当你拖动 jqGrid 表格时,原位置将会显示虚线边框。注意,这个效果是使用 jQuery UI 提供的拖放功能来实现的。
相关问题
jqgrid 重载表格
要重载 jqgrid 表格,可以使用 `GridUnload` 方法来卸载表格,然后再重新加载表格。
下面是一个示例:
```javascript
// 卸载表格
$('#grid').jqGrid('GridUnload');
// 重新加载表格
$('#grid').jqGrid({
url: 'data.json',
datatype: 'json',
colNames: ['ID', 'Name', 'Age'],
colModel: [
{ name: 'id', index: 'id', width: 60 },
{ name: 'name', index: 'name', width: 100 },
{ name: 'age', index: 'age', width: 80 },
],
jsonReader: {
repeatitems: false,
id: 'id',
},
});
```
这样就可以重新加载一个新的 jqgrid 表格了。
jqgrid 4.6 拖动表格后 宽度不能滑动
在 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` 参数都设置为重新计算后的值。
完成上述步骤后,就可以使表格的列宽度滑动了。
阅读全文