JQueryEasyUI datagrid框架的基本使用


Posted in Javascript onApril 08, 2013

今天说说这个datagrid框架的基本使用,这个框架一直以来都是大家比较头疼的框架,尤其是Json数据的拼接,后台前台都很重要,使用这个框架,最重要的是仔细:
无需废话,上代码了:

<link href="jquery-easyui-1.3.2/themes/default/easyui.css" rel="stylesheet" type="text/css" />
<!--easyui最全的样式包也可单独引用你想使用的样式包-->
<link href="jquery-easyui-1.3.2/themes/icon.css" rel="stylesheet" type="text/css" />
<!--easyui自带图片样式包,也可自行添加-->
<script src="jquery-easyui-1.3.2/jquery-1.8.0.min.js" type="text/javascript"></script>
<!--我使用的是easyui 1.3.2,基于jquery-1.8.0-->
<script src="jquery-easyui-1.3.2/jquery.easyui.min.js" type="text/javascript"></script>
<!--easyui的js包-->
<script src="jquery-easyui-1.3.2/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>
<!--easyui的中文语言包,默认是英文-->
</head>
<body id="layoutbody" class="easyui-layout">
<div data-options="region:'north',title:'North Title',split:true" style="height: 100px;">
</div>
<div data-options="region:'south',title:'South Title',split:true" style="height: 100px;">
</div>
<div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width: 100px;">
</div>
<div data-options="region:'west',title:'West',split:true" style="width: 100px;">
</div>
<div data-options="region:'center',title:'center title'" href="HTMLPage.htm" style="padding: 5px;
background: #eee; overflow: hidden;"><!--这里指向了一个htm页-->
</div>
</body>
</html>

HTMLPage.htm代码:
<script type="text/javascript" charst="utf-8">
//因为layout框架指向href时,只取html页面body中间的部分,所以该页面这样写即可
//有datagrid包含属性较多,所以尽量使用js的方式初始化datagrid框架
$(function () {
$("#dg").datagrid({
url: "GetJson.ashx", //指向一个一般处理程序或者一个控制器,返回数据要求是Json格式,直接赋值Json格式数据也可,我以demo中自带的Json数据为例,就不写后台代码了,但是我会说下后台返回的注意事项
title: "数据展示表格",
iconCls: "icon-add",
fitColumns: false, //设置为true将自动使列适应表格宽度以防止出现水平滚动,false则自动匹配大小
//toolbar设置表格顶部的工具栏,以数组形式设置
idField: 'id', //标识列,一般设为id,可能会区分大小写,大家注意一下
loadMsg: "正在努力为您加载数据", //加载数据时向用户展示的语句
pagination: true, //显示最下端的分页工具栏
rownumbers: true, //显示行数 1,2,3,4...
pageSize: 10, //读取分页条数,即向后台读取数据时传过去的值
pageList: [10, 20, 30], //可以调整每页显示的数据,即调整pageSize每次向后台请求数据时的数据
//由于datagrid的属性过多,我就不每个都介绍了,如有需要,可以看它的API
sortName: "name", //初始化表格时依据的排序 字段 必须和数据库中的字段名称相同
sortOrder: "asc", //正序
columns: [[
{ field: 'code', title: 'Code', width: 100 },
{ field: 'name', title: 'Name', width: 100 ,sortable:true},//sortable:true点击该列的时候可以改变升降序
{ field: 'addr', title: 'addr', width: 100,
//这里可以添加这样一个方法,使其显示数据得到改变
// formatter: function (value, row, index) {
// if (value == "0") {
// return "普通角色";
// } else {
// return "特殊角色";
// }
// }
}
]]//这里之所以有两个方括号,是因为可以做成水晶报表形式,具体可看demo
});
});
</script>
<div id="tt" class="easyui-tabs" style="width: 500px; height: 250px;" fit="true"
border="false">
<div title="Tab1" style="padding: 20px;" border="false">
<table id="dg">
</table>
</div>
</div>

JQueryEasyUI datagrid框架的基本使用

这是前台请求数据时发送的数据;

Json格式数据一定要是双引号的,单引号无法显示数据哦;

数据格式如下:

{ 
"total":239, 
"rows":[ 
{"code":"001","name":"Name 1","addr":"Address 11","col4":"col4 data"}, 
{"code":"002","name":"Name 2","addr":"Address 13","col4":"col4 data"}, 
{"code":"003","name":"Name 3","addr":"Address 87","col4":"col4 data"}, 
{"code":"004","name":"Name 4","addr":"Address 63","col4":"col4 data"}, 
{"code":"005","name":"Name 5","addr":"Address 45","col4":"col4 data"}, 
{"code":"006","name":"Name 6","addr":"Address 16","col4":"col4 data"}, 
{"code":"007","name":"Name 7","addr":"Address 27","col4":"col4 data"}, 
{"code":"008","name":"Name 8","addr":"Address 81","col4":"col4 data"}, 
{"code":"009","name":"Name 9","addr":"Address 69","col4":"col4 data"}, 
{"code":"010","name":"Name 10","addr":"Address 78","col4":"col4 data"} 
] 
}

这里呢,后台传递数据很重要:

注意:表格Post或者get回来的请求中
page:3 代表page为key,然后选择的当前页码为3
rows:10 代表一页的大小为10
后台返回的数据的格式为:{total:'',rows:[{},{}]}
只要包含了总数tatol字段,rows是具体的行数
例如:
Asp.Net MVC 例子:
public JsonResult GetAllUserInfos()
{
int pageSize = 5;
int pageIndex = 1;
int.TryParse(this.Request["page"], out pageIndex);
int.TryParse(this.Request["rows"], out pageSize);

pageSize = pageSize <= 0 ? 5 : pageSize;
pageIndex = pageIndex < 1 ? 1 : pageIndex;

var temp = db.UserInfo
.OrderBy(u=>u.Sort)
.Skip<UserInfo>((pageIndex-1)*pageSize)
.Take<UserInfo>(pageSize)
.ToList<UserInfo>();
Hashtable ht = new Hashtable();
ht["total"] = db.UserInfo.Count();
ht["rows"] = temp;
return Json(ht);
}

Asp.Net WebForm 例子:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
var strWebName = context.Request["WebName"] ?? string.Empty;
var GoodsNo = context.Request["GoodsNo"] ?? string.Empty;
int categoryId = 0;

int pageIndex = 1;
int pageSize = 10;

int.TryParse(context.Request["rows"], out pageSize);
int.TryParse(context.Request["page"], out pageIndex);

decimal priceLeft = 0;
decimal priceRight = 1000000;
int goodsStatus = 0;
decimal.TryParse(context.Request["PriceLeft"], out priceLeft);
decimal.TryParse(context.Request["PriceRight"], out priceRight);
int.TryParse(context.Request["CategoryId"], out categoryId);
int.TryParse(context.Request["GoodsStatus"], out goodsStatus);
var goodsQueryParamter = new GoodsQueryParamter();

goodsQueryParamter.GoodsStatus = (Model.GoodsModel.GoodsStatusEnum)goodsStatus;

var ds = goodsService.GetGoodsList(goodsQueryParamter);
string json = string.Empty;

if (ds != null && ds.Tables.Count > 0)
{
System.Text.StringBuilder rowJson = new System.Text.StringBuilder();
int colLen = ds.Tables[0].Columns.Count;
DataColumnCollection col = ds.Tables[0].Columns;
foreach (DataRow row in ds.Tables[0].Rows)
{
System.Text.StringBuilder colJson = new System.Text.StringBuilder();
rowJson.Append("{");
for (int i = 0; i < colLen; i++)
{
colJson.Append("\"" + col[i].ColumnName + "\":\"" + row[i].ToString() + "\",");
}
rowJson.Append(colJson.ToString().TrimEnd(','));
rowJson.Append("},");
}
json = "{\"total\":" + ds.Tables[0].Rows[0]["sumGoods"] + ",\"rows\":[" + rowJson.ToString().TrimEnd(',') + "]}";
}
context.Response.Write(json);
}

ASP.Net中有一个类也可以序列化Json格式数据;

Javascript 相关文章推荐
document.documentElement &amp;&amp; document.documentElement.scrollTop
Dec 01 Javascript
点击标签切换和自动切换DIV选项卡
Aug 10 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
Dec 20 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
Feb 20 Javascript
JS实现仿苹果底部任务栏菜单效果代码
Aug 28 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
基于vue实现多引擎搜索及关键字提示
Mar 16 Javascript
seajs实现强制刷新本地缓存的方法分析
Oct 16 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
Vue Socket.io源码解读
Feb 07 Javascript
原生JS实现逼真的图片3D旋转效果详解
Feb 16 Javascript
通过实例解析vuejs如何实现调试代码
Jul 16 Javascript
Jquery中使用setInterval和setTimeout的方法
Apr 08 #Javascript
JQueryEasyUI datagrid框架的进阶使用
Apr 08 #Javascript
基于datagrid框架的查询
Apr 08 #Javascript
datagrid框架的删除添加与修改
Apr 08 #Javascript
jQuery中setTimeout的几种使用方法小结
Apr 07 #Javascript
jQuery setTimeout()函数使用方法
Apr 07 #Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 #Javascript
You might like
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
浅析php工厂模式
2014/11/25 PHP
9个比较实用的php代码片段
2016/03/15 PHP
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
JS实现随机数生成算法示例代码
2013/08/08 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
学习python处理python编码问题
2011/03/13 Python
Python使用Scrapy爬取妹子图
2015/05/28 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
TensorFlow实现模型评估
2018/09/07 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
详解Python中的Lock和Rlock
2021/01/26 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
校班主任推荐信范文
2013/12/03 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
《草原》教学反思
2014/02/15 职场文书
我爱读书演讲稿
2014/05/07 职场文书
护理专业自荐书
2014/06/04 职场文书
幼师求职信
2014/06/23 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
大学生就业意向书
2015/05/11 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏