http://blog.csdn.net/zwk626542417/article/details/18839349

概要

jQuery EasyUI是一个基于jquery的集成了各种用户界面的框架,使用easyui我们不需要写太多javascript代码,一般情况下我们只需要使用一些html标记来定义用户接口,easyui将我们需要的功能都已经封装好了,我们只要来调用easyui给我们提供的接口就可以了,今天我们来学习下easyui中的DataGrid

数据显示

我们可以在easyui-datagrid中显示数据,显示数据从大类上我们也分为两种,一种是datagrid显示的数据不是来自于数据库,另一种就是将数据库的内容进行显示.

第一种

这一种是直接将写好的内容放到前台界面上写,所以相对来说比较简单,我们来看下前台代码的书写.

  1. <table id="dg"title="定性指标基础信息" class="easyui-datagrid" style="width:900px; height: 400px; padding-left: 200px;" url="get_users.php"toolbar="#toolbar" pagination="true"
  2. rownumbers="true" fitcolumns="true"singleselect="true">
  3. <thead>
  4. //设置列名
  5. <tr>
  6. <thfieldthfield="firstname" width="50">定性指标级别</th>
  7. <thfieldthfield="lastname" width="50">分数</th>
  8. </tr>
  9. </thead>
  10. //数据填充
  11. <tbody>
  12. <tr>
  13. <td>优秀</td>
  14. <td>100</td>
  15. </tr>
  16. <tr>
  17. <td>良好</td>
  18. <td>80</td>
  19. </tr>
  20. <tr>
  21. <td>一般</td>
  22. <td>60</td>
  23. </tr>
  24. <tr>
  25. <td>较差</td>
  26. <td>50</td>
  27. </tr>
  28. </tbody>
  29. </table>
  30. //工具栏按钮
  31. <dividdivid="toolbar">
  32. <ahrefahref="javascript:void(0)" class="easyui-linkbutton"iconcls="icon-add" plain="true"onclick="newUser()">添加</a>
  33. <ahrefahref="javascript:void(0)" class="easyui-linkbutton"iconcls="icon-edit" plain="true"onclick="editUser()">修改</a>
  34. <ahrefahref="javascript:void(0)" class="easyui-linkbutton"iconcls="icon-remove" plain="true"onclick="destroyUser()">删除</a>
  35. </div>

下面这是效果图

第二种

这种是将我们数据库中的内容显示到前台,我们经过一般处理程序从数据库中将数据提取出来,然后将数据显示到DataGrid中。

在这里需要注意的是,我们从数据库中取出来的内容是表格形式的dataset或datatable,而前台DataGrid接收的数据是固定格式的Json格式数据,所以我们需要将表格形式的数据转化为DataGrid需要的固定格式的Json格式数据。

  1. {"total":28,"rows":[
  2. {"产品ID":"FI-SW-01","产品名称":"Koi","价格":10.00,"状态":"P"},
  3. {"产品ID":"K9-DL-01","产品名称":"Dalmation","价格":12.00,"状态"":"P"},
  4. {"产品ID":"RP-SN-01","产品名称":"Rattlesnake","价格":12.00,"状态"":"P"},
  5. {"产品ID":"RP-SN-01","产品名称":"Rattlesnake","价格":12.00,"状态"":"P"},
  6. {"产品ID":"RP-LI-02","产品名称":"Iguana","价格":12.00,"状态"":"P"},
  7. {"产品ID":"FL-DSH-01","产品名称":"Manx","价格":12.00,"状态"":"P"},
  8. ]}

下面我们来看下怎么样将数据库中的数据显示到前台的具体过程,

首先是前台页面的书写:

  1. <div id="tt"class="easyui-tabs" style="width: 1100px; height: 530px;margin-top: 15px">
  2. <div title="已录入单位"style="padding: 10px">
  3. <table id="HaveInput"title="原始数据录入情况" class="easyui-datagrid" style="width:1050px; height: 480px; padding-left: 200px;"data-options="rownumbers:true,url:'InputScoresDetailsDeveloped.ashx/ProcessRequest',pageSize:5,pageList:[5,10,15,20],method:'get',toolbar:'#tb',"
  4. toolbar="#bar"pagination="true" rownumbers="true"fitcolumns="true" striped="true"singleselect="true">
  5. <thead>
  6. <%--设置绑定表格的列名,列名与数据库相同--%>
  7. <tr>
  8. <thdata-optionsthdata-options="field:'DepartmentName',width:100">单位名称</th>
  9. <thdata-optionsthdata-options="field:'QuantyOriginalData',width:100">定量原始数据</th>
  10. <thdata-optionsthdata-options="field:'QualityOriginalData',width:100">定性原始数据</th>
  11. <thdata-optionsthdata-options="field:'Remarks', width:175,align:'right'">备注</th>
  12. <thdata-optionsthdata-options="field:'YearTime', width:85,align:'right'">年份</th>
  13. </tr>
  14. </thead>
  15. </table>
  16. <div id="bar">
  17. <ahrefahref="javascript:void(0)" class="easyui-linkbutton"iconcls="icon-edit" plain="true"onclick="editUser()">修改数据</a>
  18. </div>
  19. </div>

表格属性里的的URL就是与一般处理程序交互用的。。

下面我们来看一般处理程序的书写,一般处理程序要首先接收由前台传过来的信息。

  1. public void ProcessRequest(HttpContextcontext)
  2. {
  3. string command =context.Request.QueryString["test"];//前台传的标示值
  4. if (command == "add")
  5. {//调用添加方法
  6. Add(context);
  7. }
  8. else if (command =="modify")
  9. {//调用修改方法
  10. Modify(context);
  11. }
  12. else
  13. {//调用查询方法
  14. Query(context);
  15. }
  16. }

然后的话才是我们从一般处理程序来向数据库获取要显示的数据库数据

  1. public void Query(HttpContext context)
  2. {
  3. //调用B层的方法从而获取数据库的Dataset
  4. DataSet ds =developmentRecordBLL.GetInputDevelopmentInfo();
  5. //将Dataset转化为Datable
  6. DataTable dt = ds.Tables[0];
  7. int count = dt.Rows.Count;
  8. string strJson =ToJson.Dataset2Json(ds, count);//DataSet数据转化为Json数据
  9. context.Response.Write(strJson);//返回给前台页面
  10. context.Response.End();
  11. }

然后我们来看下DataSet数据转化为Json数据的方法

  1. public class ToJson
  2. {
  3. #region DataSet转换成Json格式
  4. /// <summary>
  5. /// DataSet转换成Json格式
  6. /// </summary>
  7. /// <paramname="ds">DataSet</param>
  8. ///<returns></returns>
  9. public static stringDataset2Json(DataSet ds, int total = -1)
  10. {
  11. StringBuilder json = newStringBuilder();
  12. foreach (DataTable dt in ds.Tables)
  13. {
  14. //{"total":5,"rows":[
  15. json.Append("{\"total\":");
  16. if (total == -1)
  17. {
  18. json.Append(dt.Rows.Count);
  19. }
  20. else
  21. {
  22. json.Append(total);
  23. }
  24. json.Append(",\"rows\":[");
  25. json.Append(DataTable2Json(dt));
  26. json.Append("]}");
  27. } return json.ToString();
  28. }
  29. #endregion
  30. #region dataTable转换成Json格式
  31. /// <summary>
  32. /// dataTable转换成Json格式
  33. /// </summary>
  34. /// <paramname="dt"></param>
  35. ///<returns></returns>
  36. public static stringDataTable2Json(DataTable dt)
  37. {
  38. StringBuilder jsonBuilder = newStringBuilder();
  39. for (int i = 0; i <dt.Rows.Count; i++)
  40. {
  41. jsonBuilder.Append("{");
  42. for (int j = 0; j <dt.Columns.Count; j++)
  43. {
  44. jsonBuilder.Append("\"");
  45. jsonBuilder.Append(dt.Columns[j].ColumnName);
  46. jsonBuilder.Append("\":\"");
  47. jsonBuilder.Append(dt.Rows[i][j].ToString());
  48. jsonBuilder.Append("\",");
  49. }
  50. if (dt.Columns.Count > 0)
  51. {
  52. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  53. }
  54. jsonBuilder.Append("},");
  55. }
  56. if (dt.Rows.Count > 0)
  57. {
  58. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  59. }
  60. return jsonBuilder.ToString();
  61. }
  62. #endregion dataTable转换成Json格式
  63. }

到这里我们就可以成功的将数据库中的数据显示到前台的DataGrid了。

下面我们来看下效果

到这里我们就可以将数据库中的数据在前台显示了。

总结

在easyui中datagrid的使用还是很重要的,在这里我们先简要的介绍下,使datagrid可以简单的显示一些数据,关于datagrid的进一步的知识我们在下篇博客中将继续进行介绍。

项目总结—jQuery EasyUI- DataGrid使用的更多相关文章

  1. jQuery EasyUI DataGrid Checkbox 数据设定与取值

    纯粹做个记录,以免日后忘记该怎么设定. 这一篇将会说明两种使用 jQuery EasyUI DataGrid 的 Checkbox 设定方式,以及在既有数据下将 checked 为 true 的该笔数 ...

  2. 项目常用jquery/easyui函数小结

    #项目常用jquery/easyui函数小结 ##背景 项目中经常需要使用到一些功能,封装.重构.整理后形成代码沉淀,在此进行分享 ##代码 ```javascript /** * @author g ...

  3. 浅谈jQuery easyui datagrid操作单元格样式

    今天项目上遇到问题,就是表格风格统一的问题,由于用了2个不同的框架,所以如果要大修比较麻烦,考虑到修改表格样式工作量会少很多,所以考虑修改jQuery easyui datagrid数据网格的样式. ...

  4. JQuery easyUi datagrid 中 editor 动态设置最大值最小值

    前言 近来项目中使用到 easyui 来进行页面设计,感觉挺方便的,但是网上除了api外,其他有价值的资料比较少,故在此分享一点经验,供大家参考.   问题 JQuery easyUi datagri ...

  5. jQuery EasyUI datagrid实现本地分页的方法

    http://www.codeweblog.com/jquery-easyui-datagrid%e5%ae%9e%e7%8e%b0%e6%9c%ac%e5%9c%b0%e5%88%86%e9%a1% ...

  6. jquery easyui datagrid使用参考

    jquery easyui datagrid使用参考   创建datagrid 在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid.代码如下: 页面上 ...

  7. Jquery easyui datagrid 导出Excel

    From:http://www.cnblogs.com/weiqt/articles/4022399.html datagrid的扩展方法,用于将当前的数据生成excel需要的内容. 1 <sc ...

  8. jquery easyui datagrid 获取Checked选择行(勾选行)数据

    原文:jquery easyui datagrid 获取Checked选择行(勾选行)数据 getSelected:取得第一个选中行数据,如果没有选中行,则返回 null,否则返回记录. getSel ...

  9. DoNet开源项目-基于jQuery EasyUI的后台管理系统

    博主在业余时间开发了一个简单的后台管理系统,其中用到了 jQuery EasyUI 框架,上次分享过系统布局,参考文章:jQuery EasyUI 后台管理系统布局分享,目前已完成系统的整体框架的搭建 ...

  10. 扩展jquery easyui datagrid编辑单元格

    扩展jquery easyui datagrid编辑单元格 1.随便聊聊 这段时间由于工作上的业务需求,对jquery easyui比较感兴趣,根据比较浅薄的js知识,对jquery easyui中的 ...

随机推荐

  1. 【有奖】NOIP普及组模拟赛 个人邀请赛 乐多赛

    题目描述 日本数学家角谷有一个猜想:任意一个自然数,经过以下过程,最终会得到1.现在请你打印出任意一个数使用角谷猜想转换为1需要几次. 演变方式: 1.如果这个数为奇数,则将它×3+1.如果这个数为偶 ...

  2. mac终端命令大全介绍

    OSX 的文件系统 OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念. 你在桌面上看到的硬盘都挂在 /Volumes 下. 比如接上个叫做 US ...

  3. Linux内核

    Linux内核配置.编译及Makefile简述 Hi,大家好!我是CrazyCatJack.最近在学习Linux内核的配置.编译及Makefile文件.今天总结一下学习成果,分享给大家^_^ 1.解压 ...

  4. Linux 网络编程七(非阻塞socket:epoll--select)

    阻塞socket --阻塞调用是指调用结果返回之前,当前线程会被挂起.函数只有在得到结果之后才会返回. --对于文件操作 read,fread函数调用会将线程阻塞(平常使用read感觉不出来阻塞, 因 ...

  5. sql语句or与union all的执行效率比较

    看到一篇文章是讲sql语句or与union all的执行效率比较的,以前没怎么注意这个问题,感觉文章写的不错,转来一看. 文章原链接:http://www.cunyoulu.com/zhuanti/q ...

  6. 侧滑SilidingMenu ,ViewPager 和,PagerIndicator 冲突

    今天敲代码过程中发现再ViewPager 页面中禁用的SilidingMenu侧滑菜单突然失效了,那么肯定是添加的PagerIndicator的问题, 然后我发现 把setOnPageChangeLi ...

  7. 就是要你明白机器学习系列--决策树算法之悲观剪枝算法(PEP)

    前言 在机器学习经典算法中,决策树算法的重要性想必大家都是知道的.不管是ID3算法还是比如C4.5算法等等,都面临一个问题,就是通过直接生成的完全决策树对于训练样本来说是“过度拟合”的,说白了是太精确 ...

  8. 掌握GCD以及后台永久运行的代码 (使用GCD处理后台线程和UI线程的交互)

    一个例子: 在iPhone上做一个下载网页的功能,就是:在iPhone上放一个按钮,单击按钮时,显示一个转动的圆圈,表示正在进行下载,下载完成后,将内容加载到界面上的一个文本控件上. 使用GCD前: ...

  9. 20145233韩昊辰 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)

    20145233 <Java程序设计>实验报告一:Java开发环境的熟悉 实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 ...

  10. Jenkins进阶系列之——11修改Jenkins用户的密码

    说明:本方法仅适用于jdk6+.tomcat6+和Jenkins专有用户数据库的Jenkins! 很多童鞋在使用jenkins的时候忘记密码了,然后各种蛋疼.最近闲着无事,折腾了下.好了,闲话少扯. ...