用easy UI 取到所有数据放在了页面上用的是easyui 的datagrid 但是取出来有800+条数据,页面加载太慢,所以请大佬帮助怎么实现那种下拉然后加载刷新啊。
这是datagrid取数据部分代码
function loadreimbursement() {
var check; //判断按钮是否选中
if($("#check").is(":checked")) {
check = 1;
} else {
check = 0;
} $("#remilist").datagrid({
rownumbers: true,
singleSelect: true,
queryParams: {
"ischeck": check
},
method: 'post',
url: "method/reimdepartstatus.php",
columns: [
[{
hidden: "true",
field: 'id',
title: ''
},
{
field: 'name',
title: '申请人',
width: 100
},
{
field: 'pname',
title: '项目名称',
width: 100
},
{
field: 'type_name',
title: '报销类型',
width: 100
},
{
field: 'content',
title: '报销内容',
width: 100
},
{
field: 'invoice',
title: '发票类型',
width: 100
},
{
field: 'price',
title: '报销费用',
width: 100
},
{
field: 'time',
title: '申请日期',
width: 100
},
{
field: 'departstatus',
title: '部门经理申请状态',
width: 130
},
{
field: 'status',
title: '总经理申请状态',
width: 120
},
{
field: 'isexecute',
title: '发放状态',
width: 100
},
{
field: 'accessory',
title: '附件',
width: 50,
align: 'center',
formatter: function(value, rec) { var btn;
if(value == "" || value == null) {
btn = "无附件";
} else {
btn = "<a class='easyui-linkbutton' onclick='showaccessory(" + value + ")' href='javascript:void(0)'>查看</a>";
}
return btn;
} }
]
]
}); }
这是datagrid取数据部分代码
function loadreimbursement() {
var check; //判断按钮是否选中
if($("#check").is(":checked")) {
check = 1;
} else {
check = 0;
} $("#remilist").datagrid({
rownumbers: true,
singleSelect: true,
queryParams: {
"ischeck": check
},
method: 'post',
url: "method/reimdepartstatus.php",
columns: [
[{
hidden: "true",
field: 'id',
title: ''
},
{
field: 'name',
title: '申请人',
width: 100
},
{
field: 'pname',
title: '项目名称',
width: 100
},
{
field: 'type_name',
title: '报销类型',
width: 100
},
{
field: 'content',
title: '报销内容',
width: 100
},
{
field: 'invoice',
title: '发票类型',
width: 100
},
{
field: 'price',
title: '报销费用',
width: 100
},
{
field: 'time',
title: '申请日期',
width: 100
},
{
field: 'departstatus',
title: '部门经理申请状态',
width: 130
},
{
field: 'status',
title: '总经理申请状态',
width: 120
},
{
field: 'isexecute',
title: '发放状态',
width: 100
},
{
field: 'accessory',
title: '附件',
width: 50,
align: 'center',
formatter: function(value, rec) { var btn;
if(value == "" || value == null) {
btn = "无附件";
} else {
btn = "<a class='easyui-linkbutton' onclick='showaccessory(" + value + ")' href='javascript:void(0)'>查看</a>";
}
return btn;
} }
]
]
}); }
解决方案 »
- 滚动字幕无缝连接
- 怎樣使mouseover暫停二秒後再執行?
- 页面加载完成后,加载统计代码出现问题
- 急死了!为什么调用JS文件总是说变量未定义??今天要交工!帮一把吧各位高手……在线等,解决给分
- iframe 的 frameBorder与scrolling 是只读的吗??设置没有效果!为什么???
- 在ASP+vbscript/javascript中,如何实现数据表格的图表化,就像股票的走势图,或者直方图等等,请赐教!!
- 我想让一个表单自由控制向某个页面进行提交,可以是页面a.asp也可以是b.asp,该如何弄
- 孟子E章等绝顶高手请进,对下面的加密程序给出完整的注释
- 总结一下:什么状态下IE窗口中的鼠标同时显示为箭头与等待状态?
- chrome插件如何拦截所有img标签加载
- 怎么执行重复div下面的事件
- onclick指定的函数如何传参
$("#id").datagrid({//这个是表格
url: '',
loadMsg: '数据加载中,请稍后......',
border: false,
fit: true, //自适应大小
fitColumns: true,
remoteSort: false,
singleSelect: true,
loadFilter:pagerFilter,
showFooter:true,
rownumbers:true,
});
//再进行加载数据
$.ajax({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Bearer ' + $.session.get("token"));
},
url: "",//你的url
type: "post",
contentType: 'application/json;charset=utf-8',
dataType: "json",//返回类型
data: JSON.stringify(data),//要传递的数据
success: function(data){//得到的查询出的数据
$("#id").datagrid("loadData",data);
},
async: false,
error: function(er) {
}
});就这样,你可以试试。
nowrap设置为true,autoRowHeight设置为false可以改善性能Web开发学习资料推荐
JavaScript apply与call的用法及区别
Web前端开发教程
怎么搞啊
给你的datagrid中添加分页属性
pageList: [10, 20, 30, 50],//这个是rows
pagination: true,//分页栏 ..
再每次查询的时候将 ,page和rows 传递过去//page为当前第几页,rows是查询多少条数据,
后台得到页和行数信息,就可以在原来sql语句中后面添加上如果你的查询出来的数据中的id和行号一致,则用
就用ID between rows*(page-1) and rows*page 就是第10行到第20行
如果不一致,可以使用
select top m * //先取出前m行
from tablename
where id not in( //过滤掉前n行
select top n id
from tablename
)
具体实现看你怎么用了,前台传递行号和页号
var options = $("#id" ).datagrid("getPager" ).data("pagination" ).options;
var curr = options.pageNumber;
var size = options.pageSize;
恩,就是这么多了。