小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

EXT combobox 分頁 其實很簡單

 rkjx 2012-05-31

     開始對EXT分頁沒搞透徹,所以做combobox的分頁不知道如何下手。經(jīng)過一段時間的使用終于弄明白了。剛學EXT分頁的時候搞不清楚他的原理,其實很簡單,就是把異步請求的json數(shù)據(jù)填充到grid中。至于分頁實際上只是對一些參數(shù)的控制,start,limit還有個重要的參數(shù)baseParams.我們經(jīng)常遇到分頁的情況,同時還要對分類的數(shù)據(jù)進行分頁。剛開始學,不分類的數(shù)據(jù)分頁都搞不清楚,更不用說對分類數(shù)據(jù)進行分頁了。我這里總結一下三種情況,供參考,或許對初學者有幫助。第一種:同類數(shù)據(jù)分頁,第二種:分類數(shù)據(jù)分頁。第三種:加combobox分頁。

      grid分頁一定要明白這三個參數(shù)的含義。start表示從哪條記錄開始,limit表示顯示多少條記錄pageSize。正如mysql中數(shù)據(jù)庫讀取select * from tb_xx limit $start,$limit; 后臺將這些查詢數(shù)據(jù)用json格式打印出來就ok了。其余的動作,分頁都自動完成了。用firfox+firbug調(diào)試一下,打印$start和$limit的值就明白其中的道理了。

      簡單分頁:

 

Ext代碼 復制代碼 收藏代碼
  1. var client_cm = new Ext.grid.ColumnModel([     
  2.         new Ext.grid.RowNumberer(),   
  3.         client_check_select,       
  4.         {header:'ID',dataIndex:'id',width:40,sortable:true},   
  5.          .....................................   
  6. ]);   
  7.   
  8.   
  9. var person_ds = new Ext.data.Store({   
  10.         id:         'client_datasource',   
  11.         proxy: new Ext.data.HttpProxy({url:'grid.php'}),   
  12.         reader: new Ext.data.JsonReader({   
  13.             totalProperty: 'totalProperty',   
  14.             root: 'root'  
  15.         }, [   
  16.             {name: 'id'},   
  17.             {name: 'user_name'},   
  18.             {name: 'ip_addr'}   
  19.         ])   
  20.     });   
  21.   
  22.   
  23. var grid = new Ext.grid.GridPanel({   
  24.         ds: person_ds,   
  25.         cm: client_cm,   
  26.         tbar: new Ext.PagingToolbar({   
  27.             pageSize: 10,   
  28.             store: ds,   
  29.             displayInfo: true,   
  30.             displayMsg: '顯示第 {0} 條到 {1} 條記錄,一共 {2} 條',   
  31.             emptyMsg: "沒有記錄"  
  32.         })   
  33.     });   
  34.   
  35. person_ds.load({params:{start:0,limit:10}});       
  36.   
  37. 后臺getParameter. start,limit,各種語言不一樣就不用說了。   
  38. 查詢出結果打印json,分頁自動完成。  

 

分類數(shù)據(jù)分頁 :經(jīng)常遇到數(shù)據(jù)分類管理的情況,同時又要對分類的結果進行分頁。以前剛學的時候試著在start,limit上面動手腳,或者采用其它的方式,其實不用那么復雜,做過WEB開發(fā)的人都知道,分類分頁多傳個參數(shù),讓多傳的這個參數(shù)值變化就得了。那這個參數(shù)就是通過baseParams傳遞,這里假定多傳的參數(shù)為type,見如下代碼:

Ext代碼 復制代碼 收藏代碼
  1. var person_ds = new Ext.data.Store({   
  2.         id:         'client_datasource',   
  3.         baseParams: {type:0},   
  4.         proxy: new Ext.data.HttpProxy({url:'grid.php'}),   
  5.         reader: new Ext.data.JsonReader({   
  6.             totalProperty: 'totalProperty',   
  7.             root: 'root'  
  8.         }, [   
  9.             {name: 'id'},   
  10.             {name: 'machine_name'},   
  11.             {name: 'user_name'}   
  12.         ])   
  13.     });  

  這里跟上面的區(qū)別只是多加了baseParams:    {type:0},
type默認值為0,如果要傳遞更多個參數(shù),直接寫在后面就行了。
baseParams:    {type: 0 , other: 1}, 或者baseParams:    {type: 'all' , other:'not'},
值是傳過去了,如何改變baseParams,很簡單:
person_ds.baseParams = {type:2}; 加到你的事件中,再reload就可以了。
這個時候后臺要做相應的調(diào)整:
獲取參數(shù)start,limit,type......
如查詢語句: select * from tb_xx where type='$type'
 limit $start,$limit;
打印json搞定。

 

combobox下拉選擇分頁 :剛開始我也是不知道如何下手,不知道參數(shù)該如何傳遞,改變limit?還是改變baseParams? 網(wǎng)上找了一些相關的例子,看上去感覺有點復雜,所以自己想搞個簡單點的。原理很簡單,選中下拉列表某個值的時候去更limit參數(shù)值就行了。這個時候我開始想去改變limit的值:

person_ds.reload({params:{start:0,limit:parseInt(comboBox.getValue()}});

這樣第一頁是沒問題,翻頁的時候問題就出現(xiàn)了。limit又是10.....記得PagingToolbar有個pageSize參數(shù),更改一下這個值之后就成功了,原來更改pageSize就等于更改了limit的值,代碼如下:

 

Ext代碼 復制代碼 收藏代碼
  1. //分頁的下拉框   
  2. var pagesize_combo = new Ext.form.ComboBox({   
  3.         store: page_size_store,   
  4.      width:50,   
  5.         readOnly:true,   
  6.      emptyText: '10',   
  7.         mode: 'remote',   
  8.         triggerAction: 'all',   
  9.         valueField: 'value',   
  10.         displayField: 'text'  
  11.     });   
  12.        
  13.     //下拉列表事件,更改pageSize.重新加載   
  14.     pagesize_combo.on("select",function(comboBox){          
  15.         page_toolbar.pageSize = parseInt(comboBox.getValue());   
  16.         person_ds.reload({params:{start:0,limit:page_toolbar.pageSize}});   
  17.     });   
  18.        
  19.        
  20.        
  21.     //分頁工具欄   
  22.     var page_toolbar =  new Ext.PagingToolbar({   
  23.         region:'south',   
  24.         pageSize: 10,   
  25.         store: client_person_ds,   
  26.         displayInfo: true,   
  27.         displayMsg: '顯示第 {0} 條到 {1} 條記錄,一共 {2} 條',   
  28.         emptyMsg: "沒有記錄",   
  29.         items:[   
  30.             '  每頁顯示記錄數(shù)量:',   
  31.             pagesize_combo   
  32.         ]   
  33.     });   
  34.   
  35.   
  36. //終于寫完了,希望此文對初學者有所幫助。  

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多