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. IEnumerable和IEnumerator 详解 (转)

    原文链接:http://blog.csdn.net/byondocean/article/details/6871881 参考链接:http://www.cnblogs.com/hsapphire/a ...

  2. WP老杨解迷:如何获得更多的应用评价和解读内容刷新

    Windows Phone的市场评论功能研究的时间比较长,只是这一功能,估计就能写一篇论文,我曾搞过多款评论数超高的游戏,其中<少林塔防>是重量级的作品,至今稳坐最高评分第一把交椅,如果不 ...

  3. JS第一个动画

    描述:让页面中的一个盒子平稳向右移动到指定位置 <div id="div1"> <div> JS代码实现 <script type="tex ...

  4. 一道c语言运算符优先级问题

    一道c语言运算符优先级问题 #include <iostream> using namespace std; int main() { char test[] = {"This ...

  5. [git]图解git常用命令

    本文图解git中最常用的命令.如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻. 基本用法 约定 命令详解 Diff Commit Checkout Detached HEAD(匿名分支提 ...

  6. [Android] emualtor-5554 offline的解决方法

    现象:用adb devices命令总发现emualtor-5554 offline,在.android目录下面并没有发现这个设备,没法删除.原因:有程序占用5555端口,导致adb认为5554不能作为 ...

  7. LeetCode 笔记26 Maximum Product Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  8. LeetCode 笔记25 Candy (艰难的调试)

    There are N children standing in a line. Each child is assigned a rating value. You are giving candi ...

  9. HoloLens开发手记 - Unity之Gaze凝视射线

    凝视是HoloLens首要输入方式,形式功能类似于桌面系统的光标,用于选择操作全息对象.然而在Unity中并没有明确的Gaze API或者组件. 实现Gaze Implementing Gaze 概念 ...

  10. JavaScript实例-----反选

    <!DOCTYPE HTML> <html> <head> <script> function myFunction() { var oTab = do ...