扩展easyui.datagrid,添加数据loading遮罩

摘要:
Easyui可以说是一个轻量级的前端UI框架。1.2.1的更新支持更多事件。在使用方法和属性的过程中,发现easyui缺少一些小功能或不开放。以数据网格插件为例,数据加载提供了两种方法:远程和本地数据加载。然而,只有在加载远程数据时,才会显示数据加载的屏蔽层,并且在加载数据后屏蔽层会隐藏;而本地数据在加载时不会被屏蔽。这应该是因为本地数据加载很快,所以不需要使用掩码。然而,在实际项目中

easyui可以说是轻量级的前端UI框架,更新到1.2.1支持更多的事件,方法和属性

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

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

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

代码
//jquery.datagrid扩展(function(){
$.extend($.fn.datagrid.methods,{
//显示遮罩loading:function(jq){
returnjq.each(function(){
$(
this).datagrid("getPager").pagination("loading");
varopts=$(this).datagrid("options");
varwrap=$.data(this,"datagrid").panel;
if(opts.loadMsg)
{
$(
"<divclass=\"datagrid-mask\"></div>").css({display:"block",wrap.width(),height:wrap.height()}).appendTo(wrap);
$(
"<divclass=\"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){
returnjq.each(function(){
$(
this).datagrid("getPager").pagination("loaded");
varwrap=$.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

免责声明:文章转载自《扩展easyui.datagrid,添加数据loading遮罩》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇FPGA入门1[转]【C/C++】Linux下使用system()函数一定要谨慎下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

EasyUi datagrid列表增加复选框

本文为博主原创,未经允许不得转载 1.增加复选框列 { field: 'oid', title: '<input type="checkbox" name="selectRadioList" checked= true onchange="selectAll()"/>', 28, formatter: function(val...

esayUI实践的一些体会

1.如何在页面中使用 easy ui ? 引入 四个文件 <!-- 引入easy ui --> <link rel="stylesheet" type="text/css" href="http://t.zoukankan.com/${pageContext.request.contextPath}/js/easyui/themes/de...

easyui 一些小技巧

一、显示分页(pagination:true)情况下,隐藏每页显示的记录条数的那个select(即pageList),下图箭头 方法1:onBeforeLoad:function(param){    $('#'+$(this)[0].id).datagrid('getPager').pagination({        showPageList:...

JqueryEasyUI 解决IE下datagrid无法刷新的问题

问题描述: 在使用JqueryEasyUI 时,发现在IE下$('#table').datagrid('reload');无效,数据并没有被刷新,究其原因,是因为刷新时,datagrid请求的url没有变化,IE就从浏览器缓存里取数据了,返回的是302响应码。 解决办法: 在$('#table').datagrid('reload');前修改$('#tab...

easyui datagrid分页要点总结

easyui的datagird插件比较好用,也很方便。网上也有很多热的网友贴出了使用代码,但是很少有网友指出在使用过程应该注意的地方,让我实在搞不清分页应该怎么使用。我就说下使用分页功能中要注意的一个小地方。 1、首先你的html得有个table标签 <table id="tt" ></table> 在js页面加载代码中$(docu...

jQuery EasyUI教程之datagrid应用

一、利用jQuery EasyUI的DataGrid创建CRUD应用       对网页应用程序来说,正确采集和管理数据通常很有必要,DataGrid的CRUD功能允许我们创建页面来列表显示和编辑数据库记录。本教程将教会你如何运用jQuery EasyUI框架来实现DataGrid的CRUD功能 。 我们会用到如下插件: · datagrid: 列表显示数...