JqGrid使用
JqGrid介绍:
用jQuery编写,用于以表格形式来显示数据,支持后台数据传输,支持对数据处理。
用于显示数据的showList.jsp页面:
1 <table id="list"></table> 2 <div id="pager"></div>
其中
<table id="list"></table>用于显示数据,
<div id="pager"></div>用于显示分页信息、数据操作信息等。
showList.jsp页面对应的showList.js代码:
1 $(function(){ 2 jQuery("#list").jqGrid( 3 { 4 url : 'index.do?method=getPageList', 5 datatype : "json", 6 colNames : [ 'Help Category Id', 'Name', 'Parent Category Id', 'Url' ], 7 colModel : [ {name : 'help_category_id', index : 'help_category_id'}, 8 {name : 'parent_category_id', index : 'parent_category_id'}, 9 {name : 'name', index : 'name'}, 10 {name : 'url', index : 'url'}], 11 rowNum : 10, 12 rowList : [ 10, 20, 30 ], 13 pager : '#pager', 14 sortname : 'help_category_id', 15 viewrecords : true, 16 sortorder : "desc", 17 caption : "JSON Example", 18 multiselect: true 19 }); 20 21 var alertText = "<div>请选择!</div>"; 22 23 $("#list").jqGrid("navGrid", "#pager", { 24 addfunc : openDialogAdding, 25 editfunc : openDialogUpdating, 26 delfunc : openDialogDeleting, 27 alerttext : alertText 28 },{},{},{},{ 29 caption: "查找", 30 Find: "Let's go!", 31 multipleSearch: true, 32 groupOps: [{ op: "AND", text: "全部" }], 33 },{}); 34 35 }); 36 37 var openDialogAdding = function() { 38 var rowid = null; 39 window.open ('index.do?method=showAddView'); 40 $("#list").trigger("reloadGrid"); 41 } 42 var openDialogUpdating = function(rowid) { 43 alert(rowid); 44 var id = SelectedRowData(rowid); 45 window.open ('index.do?method=showUpdateView&id='+id); 46 $("#list").trigger("reloadGrid"); 47 } 48 var openDialogDeleting = function(rowid) { 49 alert(rowid); 50 loadSelectedRowData(rowid,'del'); 51 var id = SelectedRowData(rowid); 52 var params = { 53 "id" : id 54 }; 55 var actionUrl = 'index.do?method=showUpdateView'; 56 refesh(actionUrl, params) 57 } 58 59 var SelectedRowData = function(selectedRowId){ 60 if(selectedRowId!=null){ 61 var rowData = $("#list").getRowData(selectedRowId); 62 } 63 return rowData.help_category_id; 64 } 65 66 67 var refesh = function(actionUrl, params){ 68 $.ajax( { 69 url : actionUrl, 70 data : params, 71 dataType : "json", 72 cache : false, 73 success : function(data) { 74 // 如果读取结果成功,则将信息载入到对话框中 75 if(data.success == "ok"){ 76 alert("操作成功"); 77 $("#list").trigger("reloadGrid"); 78 } 79 else{ 80 alert('操作失败'); 81 } 82 83 } 84 }); 85 }
jQuery("#list").jqGrid中的参数介绍:
| url | 为传送数据的后台地址 |
| dataType | 后台传送数据的数据类型 |
| colNames | 表格数据的第一行 |
| colModel | 表格数据 |
| rolNum | 默认一行显示多少个 |
| rolList | 让用户选择可以一行显示多少个 |
| paper | 分页信息在哪里显示 |
| sortname | 以哪一列进行排序 |
| sortorder | 排序规则 |
| caption | 表格数据的名字 |
| multiselect | 是否可以多选 |
| addfunc | 增加操作的js方法名 |
| editfunc | 修改操作的js方法名 |
| delfunc | 删除操作的js方法名 |
| alerttext | 操作出错时显示的信息 |
在colModel中name表示在网页中显示的名字,index表示后台传输数据的key。
SelectedRowData方法为获取选中的行数据。
后台提交数据的数据类型:
{"page":"1",
"total":"5",
"records":"54",
"rows":[{"id":1,"cell":[55,"XXXXXX",12,"XX"]},
{"id":2,"cell":[54,"XXXX",12,"XX"]},
{"id":3,"cell":[53,"XX",12,"XX"]},
{"id":4,"cell":[52,"bbbbb",12,"nvb"]},
{"id":5,"cell":[51,"fdsfd",12,"nvb"]},
{"id":6,"cell":[50,"djkfhkdshfjkds",12,"nvb"]},
{"id":7,"cell":[49,"fksdfkdsjf",12,"nvb"]},
{"id":8,"cell":[48,"dsfds",12,"nvb"]},
{"id":9,"cell":[47,"sfd",11,"dfsdf"]},
{"id":10,"cell":[46,"ddsf",25,"dsfds"]}]}
其中page为当前的页数,total为总页数,records为数据总数,rows为具体数据。
其中rows中有两部分组成,id为数据在页面的行号,cell为数据信息。
显示结果:

浙公网安备 33010602011771号