function pagerFilter(data) { if (typeof data.length == 'number' && typeof data.splice == 'function') { // is array data = { total: data.length, rows: data } } var dg = $(this); var opts = dg.datagrid('options'); var pager = dg.datagrid('getPager'); pager.pagination({ onSelectPage: function (pageNum, pageSize) { opts.pageNumber = pageNum; opts.pageSize = pageSize; pager.pagination('refresh', { pageNumber: pageNum, pageSize: pageSize }); dg.datagrid('loadData', data); } }); if (!data.originalRows) { data.originalRows = (data.rows); } var start = (opts.pageNumber - 1) * parseInt(opts.pageSize); var end = start + parseInt(opts.pageSize); data.rows = (data.originalRows.slice(start, end)); return data; }
时间: 2024-02-10 18:21:17 浏览: 33
这是一个用于对 EasyUI datagrid 进行分页的 JavaScript 函数。它接受一个参数 data,可以是数组或包含 rows 属性的对象。如果传入的是数组,则将其转换为包含 rows 和 total 属性的对象,其中 total 表示数据总数,rows 表示数据数组。如果传入的是包含 rows 属性的对象,则直接使用该对象。
在函数内部,首先获取 datagrid 的配置项和分页器,然后设置每次选择页面时的回调函数。回调函数中更新配置项的 pageNumber 和 pageSize 属性,并重新加载分页器和 datagrid 的数据。最后,根据当前页码和每页数据条数从原始数据数组中截取对应数据返回。
相关问题
typeof dataTemp.data.title === 'undefined' 报错 nnot read properties of undefined (reading 'title')
如果你的代码在执行`typeof dataTemp.data.title === 'undefined'`时报错`Cannot read properties of undefined (reading 'title')`,那么很可能是`dataTemp`或`dataTemp.data`本身为`undefined`。在这种情况下,你需要先判断`dataTemp`和`dataTemp.data`是否存在,例如:
```
if(dataTemp && dataTemp.data && typeof dataTemp.data.title === 'undefined'){
// do something
} else {
message.open({
type: 'success',
content: dataTemp.data.title+'下载完成',
duration: 3,
top: 200
});
}
```
这样就可以避免在`dataTemp`或`dataTemp.data`不存在时访问其属性导致的错误了。
if(typeof options.value === 'function') { options.value = options.value(); } 怎么获取异步得options.value()
如果 `options.value()` 是一个异步函数,你可以使用 `async/await` 或者 `Promise` 的方式来获取它的返回值。
使用 `async/await` 的方式:
```javascript
if (typeof options.value === 'function') {
options.value = await options.value();
}
```
使用 `Promise` 的方式:
```javascript
if (typeof options.value === 'function') {
options.value().then(result => {
options.value = result;
});
}
```
这样,当 `options.value()` 执行完成后,它的返回值就会被赋值给 `options.value`,然后下一步就可以使用它了。