08-EasyUI_datagrid
2013-11-14 21:31
423 查看
0. 下载
1) JsonViewerjson字符串格式化查看及校验工具 Json-Viewer.zip
2) 此示例的项目源码源码(MyEclipse2013项目)
EasyUI_05-datagrid-src.zip
1. 将div渲染成tabs
1) tabsThe tabs display a collection of panel.
It shows only one tab panel at a time.
Each tab panel has the header title and some mini button tools,
including close button and other customized buttons.
即 浏览器标签, 同一个浏览器上开多个网页.
2) 渲染
<div class="easyui-tabs" fit="true">
<div title="用户管理">xxxxxxx</div>
</div>
注: fit="true" 填满parent, 随父窗口的改变而改变
2. 去掉border(重叠的border颜色更深)
<div class="easyui-tabs" fit="true" border="0">3. 在 chrome中出现滚动条的处理
<div region='center' style="overflow:hidden;">4. 将 <table>渲染成datagrid
推荐使用 jQuery的方式<div class="easyui-tabs" fit="true" border="0"> <div title="用户管理"> <table id="datagrid"></table> </div> </div>
var datagrid; $(function() { $("#datagrid").datagrid({ ...... }); });
5. datagrid参数说明
$("#datagrid").datagrid({ // ------- requied url : "userListServlet", // 从指定URL获取数据 // ------- optional title : "datagrid title", iconCls : "icon-save", pagination : true, // 分页工具条 pageSize : 10, // 每页显示多少条数据 pageList : [ 10, 20, 30 ], // 下拉框,可选的pageSize大小 fit : true, // true: datagrid填满parent,不论数据有多少; fitColumns : true, // true: 不出现滚动条,自适应parent,列不多时使用 nowarp : false, //单元格内容过多时, true:不换行,一行显示;false:换行显示 border : false, sortName : "name", // 按哪个字段排序 sortOrder : "desc", // desc / asc // ------- required idField : "id", // 每条数据的标识, 相当于主键.可实现跨页删除(如,第一页选中2条,第二页选中1条,批量删除) columns : [ [ { title : "编号", field : "id", // 与 idField 对应, 与json字符中一致 width : 100 }, { title : "姓名", field : "name",// 与json字符串中name属性一致 width : 100, sortable : true // 字段头上点击会 排序,反向当前排序 }, { title : "密码", field : "password", width : 100 } ] ], });
6. 服务器端处理程序 UserListServlet (见下)
注: 用Firebug 查看请求参数1) 请求参数
page 页数
rows 页大小
2) 响应中包含的参数
注: 如果 响应中没有 total 则 实现不了翻页功能
total 记录总数
rows json数组,要显示的记录
7. 查看返回的 json字符串 -- json viewer
1) 数组 [][ {第一条数据} ,
{第二条数据}, ....] 直接在grid中显示
无法分页
2) 对象 {}
{ "total": 最大记录数, "rows": [......] }
可以分页
8. 排序
1) datagrid 参数sortName
Defines which column can be sorted.
按哪个字段排序
sortOrder
Defines the column sort order, can only be 'asc' or 'desc'.
按升序还是降序排序
2) 请求参数
order desc
sort name
3) 在列头上添加 点击排序
参看文档 datagrid中 colum的说明
sortable : true
9. 网页源码-- center.html
<!--
datagrid
1. 将div渲染成tabs
1) tabs
The tabs display a collection of panel.
It shows only one tab panel at a time.
Each tab panel has the header title and some mini button tools,
including close button and other customized buttons.
即 浏览器标签, 同一个浏览器上开多个网页.
2) 渲染
<div class="easyui-tabs" fit="true">
<div title="用户管理">xxxxxxx</div>
</div>
注: fit="true" 填满parent, 随父窗口的改变而改变
2. 去掉border(重叠的border颜色更深)
<div class="easyui-tabs" fit="true" border="0">
3. 在 chrome中出现滚动条的处理
<div region='center' style="overflow:hidden;">
4. 将 <table>渲染成datagrid
推荐使用 jQuery的方式
5. 参数说明
6. 服务器端处理程序 UserListServlet
注: 用Firebug 查看请求参数
1) 请求参数
page 页数
rows 页大小
2) 响应中包含的参数
注: 如果 响应中没有 total 则 实现不了翻页功能
total 记录总数
rows json数组,要显示的记录
7. 查看返回的 json字符串 -- json viewer
8. 排序
1) datagrid 参数
sortName
Defines which column can be sorted.
按哪个字段排序
sortOrder
Defines the column sort order, can only be 'asc' or 'desc'.
按升序还是降序排序
2) 请求参数
order desc
sort name
3) 在列头上添加 点击排序
参看文档 datagrid中 colum的说明
sortable : true
-->
<script type="text/javascript">
var datagrid;
$(function() {
$("#datagrid").datagrid({
// ------- requied
url : "userListServlet", // 从指定URL获取数据
// ------- optional
title : "datagrid title",
iconCls : "icon-save",
pagination : true, // 分页工具条
pageSize : 10, // 每页显示多少条数据
pageList : [ 10, 20, 30 ], // 下拉框,可选的pageSize大小
fit : true, // true: datagrid填满parent,不论数据有多少;
fitColumns : true, // true: 不出现滚动条,自适应parent,列不多时使用
nowarp : false, //单元格内容过多时, true:不换行,一行显示;false:换行显示
border : false,
sortName : "name", // 按哪个字段排序
sortOrder : "desc", // desc / asc
// ------- required
idField : "id", // 每条数据的标识, 相当于主键.可实现跨页删除(如,第一页选中2条,第二页选中1条,批量删除)
columns : [ [ {
title : "编号",
field : "id", // 与 idField 对应, 与json字符中一致
width : 100
}, {
title : "姓名",
field : "name",// 与json字符串中name属性一致
width : 100,
sortable : true // 字段头上点击会 排序,反向当前排序
}, {
title : "密码",
field : "password",
width : 100
} ] ],
});
});
</script>
<div class="easyui-tabs" fit="true" border="0"> <div title="用户管理"> <table id="datagrid"></table> </div> </div>
10. 服务区端servlet-- UserListServlet
package foo.ui.servlet; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import foo.domain.User; public class UserListServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 请求参数 page rows , 可通过 Firebug 查看请求参数 int pageNumber = Integer.parseInt(request.getParameter("page")); int pageSize = Integer.parseInt(request.getParameter("rows")); System.out.println("pageNumber (page) = " + pageNumber); System.out.println("pageSize (rows) = " + pageSize); // 根据请求参数 抓取数据 List<User> userList = new ArrayList<User>(); String jsonString = null; int total = 100; int startIndex = (pageNumber - 1) * pageSize; int stopIndex = pageNumber * pageSize; for (int i = startIndex; i < stopIndex; i++) { if (i == total) { break; } userList.add(new User(i, "admin" + i, "kk" + i)); } // Java对象 转 json字符串 Map<String, Object> map = new HashMap<String, Object>(); map.put("total", total); // total 告诉 datagrid 总共有多少条数据 map.put("rows", userList); // rows 为要显示的数据 jsonString = object2JsonString(map); // 将数据返回给 datagrid response.setHeader("Content-Type", "application/json"); response.getWriter().print(jsonString); } // jackson 用法参考 // http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html private String object2JsonString(Object obj) throws IOException, JsonGenerationException, JsonMappingException { ObjectMapper objectMapper = new ObjectMapper(); StringWriter stringWriter = new StringWriter(); JsonGenerator jsonGenerator = new JsonFactory().createJsonGenerator(stringWriter); objectMapper.writeValue(jsonGenerator, obj); return stringWriter.toString(); } }
相关文章推荐
- 最新隐藏进程 RING3实现方式:hook ZwQuerySystemInformation 隐藏进程 在XP里测试通过
- MSBuild 12.0
- POJ 3683 Priest John's Busiest Day (2 - SAT) - from lanshui_Yang
- How to Call SharePoint 2013 API Service to Query The Lists
- OUI启动时的小错误PRVF-0002
- (解决办法) UISearchBar 可以呼唤出键盘但无法输入
- LigerUI中根据表单查询条件进行查询,使用表格Grid展示
- POJ-3061 Subsequence(队列求区间和)
- Error for wireless request "Set AP Address" (8B14) : SET failed on device wlan0 错误解决办法
- Permutation Sequence
- CoreData之FetchRequestController
- poj2478 Farey Sequence 欧拉函数的应用
- poj2478 Farey Sequence 欧拉函数的应用
- [翻译]API Guides - Bound Services
- BlockingQueue【转】
- EasyUI移除select校验
- webDriver.Close() 和 webDriver.Quit() 、webDriver.Dispose() 的区别
- 史上最简洁的UITableView Sections 展示包含NSDicionary 的NSArray
- SOAPUI 压力测试的指标项说明
- Adobe Flash Builder 4.7破解方法(绝对可用)