jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化's Archiver

hanmin888 發表於 2010-9-29 13:58

JqGrid 無法翻頁

[i=s] 本帖最後由 hanmin888 於 2010-9-29 14:19 編輯 [/i]

最近在使用jqgrid

我是始用struts2 配合 jquery jqgrid

但是遇上了一個問題

那就是雖然我的jqgrid接收到了資料

但是卻無法翻頁....很苦腦

還有一件事,就是我的標題欄的中文字被切掉 = =.. 應該是官方css的關係

找遍google都沒提到, 請有經驗的人幫忙解答一下
畫面跟程式碼如下[code]<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});
});[/code][img]http://www.pixavid.com/uploads/lKwvrC.png[/img]

wmh 發表於 2010-10-1 07:13

行高的部份可以新增這組 CSS 設定把預設值改掉:[code]
.ui-jqgrid .ui-jqgrid-htable th div {
    height: 30px;
}
[/code]換頁的部份你可以先檢查 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端 用[code]<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>[/code]然後再幫我分頁
有人知道怎麼弄嗎?
拜託指點一下~

wmh 發表於 2010-10-7 22:23

jqgrid 是靠 p 這個參數將頁數傳給 server,所以 server 需要依靠這個參數回傳不同的結果才行

hanmin888 發表於 2010-10-8 10:57

根據官網的文件, 我找到了一個參數[code]loadonce : true[/code]這個可以解決我那翻頁的困擾

但是又發生另一個困擾.

也就是我如果再次 submit 別的參數, 則jqgrid 不會理我.

變成只要它接收過資料, 就不會再理我了.

我在想另一個辦法....不然每次要重查資料, 就要重讀整個網頁

頁: [1]

Powered by Discuz! Archiver  © 2001-2009 Comsenz Inc.