首先我想知道gsp页面的“jqGrid”结构中哪种类型的分页更可取(客户端或服务器端)。
我的问题是,当我设置“loadonce:true”时,自动排序是工作并且导航图标(箭头)被禁用。当我注释掉“loadonce:true”时,排序停止工作并且导航箭头被启用但根本不起作用。
我在我的项目中使用了以下内容,但我的页面导航不起作用。
控制器
class TestDBController {
def dataSource
def index = {
}
def jq_customer_list = {
try {
def sql = new Sql(dataSource)
String query = "select * from employee"
List customers = sql.rows(query)
def count1 = sql.rows(query).size()
def jsonCells = customers.collect {
[cell: [it.fname,
it.lname,
it.age,
it.id ]
]
}
def jsonData= [ rows: jsonCells]
render jsonData as JSON
}
catch(Exception e)
{
System.out.println("Generated exception is "+e)
}
}
}
带有 jqgrid 代码的GSP -
css 和 javascript文件 -
<link rel="stylesheet" href="${resource(dir: 'css', file: 'timeTable.css')}" type="text/css">
<link rel="stylesheet" href="${resource(dir:'css',file:'ui.jqgrid.css')}" type="text/css">
<link rel="stylesheet" href="${resource(dir:'css/ui-lightness',file:'jquery-ui- 1.9.2.custom.css')}"type="text/css">
<link rel="stylesheet" href="${resource(dir: 'css', file: 'ttajqgridtable.css')} "type="text/css">
<g:javascript src="jquery-1.8.3.js" />
<g:javascript src="grid.locale-en.js" />
<g:javascript src="jquery.jqGrid.min.js" />
<g:javascript src="jquery-ui-1.9.2.custom.min.js" />
jQuery代码
<body>
<table id="list" class="scroll jqTable"></table>
<div id="pager" class="scroll"></div>
<script type="text/javascript">
$(document).ready(function () {
jQuery("#list").jqGrid({
url:'${g.createLink( controller:'TestDB', action:'jq_customer_list' )}',
datatype: "json",
colNames:['first Name','Last Name','Age','id'],
colModel:[
{name:'fName'},
{name:'lName'},
{name:'age'},
{name:'id'}
],
rowNum: 5,
width : 1000,
height: 500,
shrinkToFit: true,
pager: "#pager",
paging: true,
viewrecords: true,
gridview: true,
loadonce:true,
rowList : [ 5,10, 25],
sortname : 'fname',
viewrecords : true,
sortorder : "desc",
rownumbers: true,
altRows:true,
caption: "Division Data"
});
jQuery("#list").jqGrid('setGridParam',{datatype:'json'});
jQuery("#tabs").tabs();
});
</script>
</div>
</body>
</html>