在 《RESTful WCF Services (2) (实现增,删,改,查) 》 中实现了RESTful WCF 的服务端,本篇文章结合现在很火的 jQuery EasyUI 做一个客户端的示例。
关于 jQuery 的导入:
<script type="text/javascript" src="UI/scripts/jquery-1.4.4.min.js"></script>
一定不能写成 <script ... /> , 一开始犯了这个错误找了好久 T_T
jQuery EasyUI DataGrid 的数据加载,
1. json的格式有要求: 必须有 rows 属性。比如: var json = {rows:[]};
2. 一般的方式是通过配置 datagrid 的 url 属性:(xxx.aspx 可以是任何返回 json 格式的url)$('#test').datagrid({ url: xxx.aspx });
3. 通过 $('#test').datagrid('loadData', data); 加载
因为服务端返回的是 List<T> 的数据,所以需要在客户端组装成 EasyUI datagrid 要求的格式。
(1) 先通过 $.getJSON(url) 获取json
(2) 然后交给准备好的 data.rows
function Refresh() { var data = { total: 0, rows: [] }; var jqxhr = $.getJSON("TaskService/Tasks/All", function (json) { data.rows = json; $('#test').datagrid('loadData', data); }); }
完整的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>My Task List EasyUI</title> <link rel="stylesheet" type="text/css" href="UI/themes/default/easyui.css" mce_href="UI/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="UI/themes/icon.css" mce_href="UI/themes/icon.css"> <mce:script type="text/javascript" src="UI/scripts/jquery-1.4.4.min.js" mce_src="UI/scripts/jquery-1.4.4.min.js"></mce:script> <mce:script type="text/javascript" src="UI/scripts/jquery.easyui.min.js" mce_src="UI/scripts/jquery.easyui.min.js"></mce:script> <mce:script type="text/javascript"><!-- $(function () { $('#test').datagrid({ title: 'My TaskList', iconCls: 'icon-ok', width: 550, height: 260, nowrap: false, striped: true, collapsible: true, sortName: 'ID', sortOrder: 'asc', remoteSort: false, idField: 'ID', columns: [[ { field: 'ck', checkbox: true }, { field: 'ID', title: 'ID', width: 50, sortable: true }, { field: 'Title', title: 'Title', width: 150, sortable: true, sorter: function (a, b) { return (a > b ? 1 : -1); } }, { field: 'Detail', title: 'Detail', width: 250, sortable: true }, { field: 'State', title: 'State', width: 50, sortable: true } ]], pagination: true, rownumbers: false }); Refresh(); var p = $('#test').datagrid('getPager'); if (p) { $(p).pagination({ onBeforeRefresh: function () { Refresh(); } }); } }); function Refresh() { var data = { total: 0, rows: [] }; var jqxhr = $.getJSON("TaskService/Tasks/All", function (json) { data.total = json.length; data.rows = json; $('#test').datagrid('loadData', data); }); } // --></mce:script> </head> <body> <h1>Task List</h1> <table id="test"></table> </body> </html>
这样就可以通过winform客户端增加,通过浏览器查看: