jqgrid 重新熏染整个表格
时间: 2023-07-24 12:23:42 浏览: 83
如果需要重新渲染整个 jqGrid 表格,可以使用以下代码:
```
// 清空表格数据
$("#grid").jqGrid("clearGridData");
// 重新加载数据
$("#grid").jqGrid("setGridParam", { datatype: "json" }).trigger("reloadGrid");
```
这段代码会先清空表格数据,然后重新加载数据,从而实现整个表格的重新渲染。
需要注意的是,如果重新加载数据时需要传递参数,可以使用 setGridParam 方法设置 postData 参数,例如:
```
// 设置 postData 参数
$("#grid").jqGrid("setGridParam", { postData: { param1: value1, param2: value2 } });
// 重新加载数据
$("#grid").jqGrid("setGridParam", { datatype: "json" }).trigger("reloadGrid");
```
这样就可以在重新加载数据时传递参数了。
相关问题
jqgrid4.5.2版本,表格冻结列之后如何排序
在jqGrid中,当表格包含冻结列时,排序仅适用于未冻结的列。这是因为排序需要对整个表格进行操作,而冻结列只是固定了某些列,不允许其滚动。
如果您想在冻结列中实现排序,一种解决方案是使用自定义排序函数。您可以通过设置`colModel`中的`sortfunc`属性来指定自定义排序函数。该函数应该接受两个参数:要比较的两个值,并返回一个数字,表示它们的相对顺序。
以下是一个示例代码,其中使用自定义排序函数对冻结列进行排序:
```javascript
// 定义自定义排序函数
function customSort(a, b) {
// TODO: 根据需要实现自定义排序逻辑
// 返回-1表示a应该排在b之前,返回1表示a应该排在b之后
return a < b ? -1 : 1;
}
// 定义colModel
var colModel = [
{ name: 'frozenCol1', frozen: true },
{ name: 'frozenCol2', frozen: true, sortfunc: customSort },
{ name: 'normalCol1' },
{ name: 'normalCol2' },
// ...
];
// 初始化jqGrid
$('#grid').jqGrid({
// ...
colModel: colModel,
// ...
});
```
在上面的示例中,我们使用`customSort`函数对第二个冻结列进行排序。如果您需要对多个冻结列进行排序,可以为每个需要排序的列设置不同的`sortfunc`函数。
jqgrid 重新初始化
如果需要重新初始化 jqGrid,可以使用以下代码:
```
// 销毁 jqGrid
$("#grid").jqGrid("GridUnload");
// 重新初始化 jqGrid
$("#grid").jqGrid({
// jqGrid 的配置项
...
});
```
这段代码会先销毁 jqGrid,然后重新初始化 jqGrid,从而实现 jqGrid 的重新初始化。
需要注意的是,销毁 jqGrid 时,可以使用 GridUnload 方法,而不是 destroy 方法。因为 destroy 方法只是销毁了表格本身,但是如果表格中使用了一些插件或者事件,这些插件和事件并不会被销毁,而使用 GridUnload 方法可以完全销毁 jqGrid,从而避免这个问题。
阅读全文