扩展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 相关文章推荐
你可能不再需要JQUERY
Mar 09 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
Sep 22 Javascript
在Linux上用forever实现Node.js项目自启动
Jul 09 Javascript
基于jQuery实现文本框缩放以及上下移动功能
Nov 24 Javascript
js实现缓冲运动效果的方法
Apr 10 Javascript
.NET微信公众号开发之创建自定义菜单
Jul 16 Javascript
JQuery Ajax WebService传递参数的简单实例
Nov 02 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
Dec 13 Javascript
微信小程序 支付简单实例及注意事项
Jan 06 Javascript
从零学习node.js之模块规范(一)
Feb 21 Javascript
js正则表达式验证密码强度【推荐】
Mar 03 Javascript
jQuery自动或手动图片切换效果
Oct 11 jQuery
关于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中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
php rsa加密解密使用详解
2015/01/14 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
基于jQuery的表单填充实例
2017/08/22 jQuery
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
简单谈谈Python流程控制语句
2016/12/04 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
Python用for循环实现九九乘法表
2018/05/31 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
Python while true实现爬虫定时任务
2020/06/08 Python
python -v 报错问题的解决方法
2020/09/15 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
关于空气污染危害的感想
2015/08/11 职场文书
英语导游欢迎词
2015/09/30 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS