jeesite datagrid表头排序不请求后台
时间: 2023-08-04 18:19:33 浏览: 101
JeeSite 的 DataGrid 组件可以实现表头排序功能,但默认情况下,点击表头排序时是会发送请求到后台进行排序的。如果你想要不请求后台进行排序,可以通过以下步骤实现:
1. 打开需要实现不请求后台排序的页面对应的 js 文件,找到 DataGrid 定义的地方。
2. 在 DataGrid 定义中加入 sortOnRemote: false,例如:
```
$('#dg').datagrid({
url: 'datagrid_data.json',
sortOnRemote: false, // 不请求后台进行排序
columns: [[
{field:'code',title:'Code',width:100,sortable:true},
{field:'name',title:'Name',width:100,sortable:true},
{field:'price',title:'Price',width:100,sortable:true},
]]
});
```
3. 保存文件并重新加载页面,此时点击表头排序时就不会发送请求到后台进行排序了。
需要注意的是,如果你不发送请求到后台进行排序,那么排序功能的实现就需要在前端进行。这可能会影响到页面的性能,所以需要谨慎使用。
相关问题
jeesite datagrid点击表头不走后端排序
如果您不想在后端进行排序处理,可以通过前端实现表格点击表头排序的功能。具体实现方式如下:
1. 在 Datagrid 中添加 sortable 属性,表示该列可以排序。
2. 在 Datagrid 的 onSortColumn 事件中获取当前要排序的字段名和排序方式,并对数据进行排序处理。
例如,以下代码实现了在前端进行表格排序的功能:
```javascript
// 定义一个数组存放数据
var data = [
{id: 1, name: "张三", age: 22},
{id: 2, name: "李四", age: 25},
{id: 3, name: "王五", age: 20}
];
// 初始化 Datagrid
$('#dg').datagrid({
data: data,
singleSelect: true,
columns: [[
{field: 'id', title: 'ID', sortable: true},
{field: 'name', title: '姓名'},
{field: 'age', title: '年龄', sortable: true}
]],
onSortColumn: function(sort, order) {
// 获取当前要排序的字段名和排序方式
var field = sort;
var dir = order == 'asc' ? 1 : -1;
// 对数据进行排序处理
data.sort(function(a, b) {
return a[field] > b[field] ? dir : -dir;
});
// 重新加载数据
$('#dg').datagrid('loadData', data);
}
});
```
在上面的代码中,我们通过 onSortColumn 事件获取当前要排序的字段名和排序方式,然后对数据进行排序处理,最后重新加载数据即可。这样,用户在点击表头时,表格会自动按照当前列进行排序。
jeesite datagrid双击表头当前页面排序
JeeSite的DataGrid控件默认是在后台进行排序的,如果需要在前台实现双击表头当前页面排序,可以在DataGrid的onHeaderContextMenu事件中添加双击表头事件的处理函数。
下面是一个示例代码:
```javascript
$('#datagrid').datagrid({
url: '...',
// 在onHeaderContextMenu事件中添加双击表头事件处理函数
onHeaderContextMenu: function(e, field) {
e.preventDefault();
if (e.originalEvent.detail == 2) { // 判断是否双击事件
// 获取DataGrid对象
var grid = $(this);
// 获取当前排序的字段和排序方式
var sortField = grid.datagrid('options').sortName;
var sortOrder = grid.datagrid('options').sortOrder;
// 切换排序方式并重新加载数据
if (sortOrder == 'asc') {
grid.datagrid('sort', {
sortName: field,
sortOrder: 'desc'
});
} else {
grid.datagrid('sort', {
sortName: field,
sortOrder: 'asc'
});
}
}
}
});
```
在上面的代码中,我们在DataGrid的onHeaderContextMenu事件中添加了双击表头事件处理函数。在该处理函数中,我们首先判断当前事件是否为双击事件,然后获取当前排序的字段和排序方式。最后根据当前排序方式切换排序方式并重新加载数据。
阅读全文