
標題: JqGrid 無法翻頁 [打印本頁]
作者: hanmin888 時間: 2010-9-29 13:58 標題: JqGrid 無法翻頁
本帖最後由 hanmin888 於 2010-9-29 14:19 編輯
最近在使用jqgrid
我是始用struts2 配合 jquery jqgrid
但是遇上了一個問題
那就是雖然我的jqgrid接收到了資料
但是卻無法翻頁....很苦腦
還有一件事,就是我的標題欄的中文字被切掉 = =.. 應該是官方css的關係
找遍google都沒提到, 請有經驗的人幫忙解答一下
畫面跟程式碼如下<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#list4").jqGrid({
url:'arjj9201?text1=A&text2=Z&date1=0&date=99999999',
datatype: 'json',
mtype: 'GET',
height: 400,
width: 800,
colNames:['單別代號','編號年月日', '已用編號','建立者','建立日期','建立時間','維護者','維護日期','維護時間'],
colModel:[
{name:'A92FS2',index:'單別代號',height:50,width:120,sorttype:"int"},
{name:'A92FS3',index:'編號年月日', width:150,sorttype:"date"},
{name:'A92F11',index:'已用編號', width:120},
{name:'A92F91',index:'建立者', width:120},
{name:'A92F92',index:'建立日期', width:150,sorttype:"date"},
{name:'A92F93',index:'建立時間', width:120,sorttype:"int"},
{name:'A92F94',index:'維護者', width:120},
{name:'A92F95',index:'維護日期', width:150,sorttype:"date"},
{name:'A92F96',index:'維護時間', width:120}
],
pager: '#pager',
sortable: true,
rowNum:15,
multiselect: false,
prmNames:{rows:"pageSize",page:"page"},
jsonReader : {
root: "row",
page: "page",
total: "total",
records: "records",
repeatitems: false
},
rowList:[10,20,30],
sortname: 'id',
sortorder: 'desc',
viewrecords: true,
caption: 'My first grid'
});
jQuery("#list4").jqGrid('navGrid','#pager',{edit:false,add:false,del:false});
});

作者: wmh 時間: 2010-10-1 07:13
行高的部份可以新增這組 CSS 設定把預設值改掉:
.ui-jqgrid .ui-jqgrid-htable th div {
height: 30px;
}
換頁的部份你可以先檢查 client 端是否正確發出 request、是否正確收到回應?這可以透過 client 端的開發工具如 firebug 來看。
作者: hanmin888 時間: 2010-10-3 20:02
client 端所發出的request是正確的
因為我可以從tomcat 看到傳回到 client端的資料有幾筆,以及內容
而且我也可以控制submit出去的參數
問題就是在於jqgrid 收到 json格式資料, 雖然有正確的把資料顯示出來
但是分頁效果完全沒用.
後來我仔細觀察, 發現jqgrid每次翻頁都會action一次. 所以傳回來的資料還是一樣
應該是 struts 2 要配 jqgrid的話, 翻頁這些功能都要在server端先做好, 再把資料丟到前端
這樣一來, server的負擔變很重, 因為每次翻頁都要下sql 去找資料, 再過濾資料....實在是很....@$$#!
不知有沒有推薦的 datagrid , 我要的很簡單, 就只是分頁翻頁這些功能而已....
作者: hanmin888 時間: 2010-10-6 15:45
請問有人知道該怎麼弄嗎??
我只是要 JQgrid 接收 json的資料後
幫我分頁就行了.
還是有別的jquery 的 plugin 可以做到??
不然用另一種方式也行
就是我在jsp端 用<div id="demo">
<table id="list4" cellpadding="1" cellspacing="0" border="0" class="display">
<thead>
<tr>
<th>單別代號</th>
<th>編號年月日</th>
<th>已用編號</th>
<th>建立者</th>
<th>建立日期</th>
<th>建立時間</th>
<th>維護者</th>
<th>維護日期</th>
<th>維護時間</th>
<tr>
</thead>
<tbody>
<%
for(int i=0;i<l.size();i++){
Map rs=(HashMap)l.get(i);
%>
<tr>
<th><%=(String)rs.get("A92FS2")%></th>
<th><%=(String)rs.get("A92FS3")%></th>
<th><%=(String)rs.get("A92F11")%></th>
<th><%=(String)rs.get("A92F91")%></th>
<th><%=(String)rs.get("A92F92")%></th>
<th><%=(String)rs.get("A92F93")%></th>
<th><%=(String)rs.get("A92F94")%></th>
<th><%=(String)rs.get("A92F95")%></th>
<th><%=(String)rs.get("A92F96")%></th>
<tr>
<% }
%>
</tbody>
</table>
</div>
然後再幫我分頁
有人知道怎麼弄嗎?
拜託指點一下~
作者: wmh 時間: 2010-10-7 22:23
jqgrid 是靠 p 這個參數將頁數傳給 server,所以 server 需要依靠這個參數回傳不同的結果才行
作者: hanmin888 時間: 2010-10-8 10:57
根據官網的文件, 我找到了一個參數loadonce : true
這個可以解決我那翻頁的困擾
但是又發生另一個困擾.
也就是我如果再次 submit 別的參數, 則jqgrid 不會理我.
變成只要它接收過資料, 就不會再理我了.
我在想另一個辦法....不然每次要重查資料, 就要重讀整個網頁
歡迎光臨 jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化 (http://jsgears.com/) |
|