扩展easyui.datagrid,添加数据loading遮罩效果代码


Posted in Javascript onNovember 02, 2010

在使用的过程中,发现easyui目前还缺少一些小功能或是未开放出来

拿datagrid插件来说,数据加载提供了两种方式远程和本地数据加载,但只有远程数据加载时才会显示数据加载的遮罩层,在数据加载完成后隐藏遮罩层;而本地数据加载时则不会出现遮罩,这应该是考虑到本地数据加载的速度很快则没有使用遮罩的必要

不过呢,在实际的项目开发过程中使用时,没有考虑使用url方式加载数据,则采用了loadData方法来异步加载数据,这个时候就很有必要显示遮罩层来提示用户当前正在加载数据,分析easyui的datagrid代码,削离出其中远程数据加载时遮罩显示代码,并扩展datagrid的方法,代码如下:

//jquery.datagrid 扩展 
(function (){ 
$.extend($.fn.datagrid.methods, { 
//显示遮罩 
loading: function(jq){ 
return jq.each(function(){ 
$(this).datagrid("getPager").pagination("loading"); 
var opts = $(this).datagrid("options"); 
var wrap = $.data(this,"datagrid").panel; 
if(opts.loadMsg) 
{ 
$("<div class=\"datagrid-mask\"></div>").css({display:"block",width:wrap.width(),height:wrap.height()}).appendTo(wrap); 
$("<div class=\"datagrid-mask-msg\"></div>").html(opts.loadMsg).appendTo(wrap).css({display:"block",left:(wrap.width()-$("div.datagrid-mask-msg",wrap).outerWidth())/2,top:(wrap.height()-$("div.datagrid-mask-msg",wrap).outerHeight())/2}); 
} 
}); 
} 
, 
//隐藏遮罩 
loaded: function(jq){ 
return jq.each(function(){ 
$(this).datagrid("getPager").pagination("loaded"); 
var wrap = $.data(this,"datagrid").panel; 
wrap.find("div.datagrid-mask-msg").remove(); 
wrap.find("div.datagrid-mask").remove(); 
}); 
} 
}); 
})(jQuery);

使用方法:
$("#dataGrid").datagrid("loadData",(function (){ 
$("#dataGrid").datagrid("loading"); 
return [];//[]需要加载的数据 
})());

在datagrid的事件onLoadSuccess中添加
onLoadSuccess:function (){ 
$("#dataGrid").datagrid("loaded"); 
}

writer:追梦客 20101030 office
Javascript 相关文章推荐
Javascript 函数对象的多重身份
Jun 28 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
js实现页面转发功能示例代码
Aug 05 Javascript
javascript实现随机读取数组的方法
Aug 03 Javascript
JS设置下拉列表框当前所选值的方法
Dec 22 Javascript
Django+Vue.js搭建前后端分离项目的示例
Aug 07 Javascript
react-native DatePicker日期选择组件的实现代码
Sep 12 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 Javascript
详解vue2.0 资源文件assets和static的区别
Nov 27 Javascript
浅谈对于react-thunk中间件的简单理解
May 01 Javascript
Vue Components 数字键盘的实现
Sep 18 Javascript
vue中的使用token的方法示例
Mar 10 Javascript
关于document.cookie的使用javascript
Oct 29 #Javascript
深入理解JavaScript定时机制
Oct 29 #Javascript
在JS中最常看到切最容易迷惑的语法(转)
Oct 29 #Javascript
ExtJS 入门
Oct 29 #Javascript
js 弹出框 替代浏览器的弹出框
Oct 29 #Javascript
javascript天然的迭代器
Oct 29 #Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
Oct 29 #Javascript
You might like
无数据库的详细域名查询程序PHP版(5)
2006/10/09 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
javascript div 弹出可拖动窗口
2009/02/26 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
详细解读Python中解析XML数据的方法
2015/10/15 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
python实现多线程网页下载器
2018/04/15 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
Python sublime安装及配置过程详解
2020/06/29 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
详解Python模块化编程与装饰器
2021/01/16 Python
python如何实现递归转非递归
2021/02/25 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
幼儿园门卫制度
2014/01/29 职场文书
房地产营销策划方案
2014/02/08 职场文书
大学新学期计划书
2014/04/28 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
2014年调度员工作总结
2014/11/19 职场文书
导游带团欢迎词
2015/09/30 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
Django路由层如何获取正确的url
2021/07/15 Python
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL