初學ExtJs 表格顯示后台數據


最近開始接觸ExtJs,貼出自己的代碼,一個簡單的表格顯示

版本 3.4.1

需要json包

 

代碼清單1、jsp引入的ExtJs文件

 <!-- 資源文件 ExtJs 3.4.1 -->
  <link href="ExtJs/resources/css/ext-all.css" type="text/css" rel="stylesheet"/>
  
  <script type="text/javascript" src="ExtJs/ext-all-debug-w-comments.js"></script>
  <script type="text/javascript" src="ExtJs/adapter/ext/ext-base.js"></script>
  <script type="text/javascript" src="ExtJs/ext-all.js"></script>
  <script type="text/javascript" src="ExtJs/ext-lang-zh_CN.js"></script>
  
  <!-- 表格js文件 -->
  <script type="text/javascript" src="ExtIs/viewTable.js"></script>

代碼清單2 、viewTable.js文件

 1 /**
 2  * 數據表格顯示
 3  */
 4 Ext.onReady(function (){
 5     //多選框
 6     var sm = new Ext.grid.CheckboxSelectionModel({
 7         listeners:{
 8             'selectionchange':function(obj){
 9                 var select = grid.getSelectionModel().getSelections();
10             }
11         }
12     });
13     //定義讀取數據格式
14     var dataReader = new Ext.data.JsonReader({
15                 totalProperty:'count',
16                 root: 'data'
17             },[
18                     { name: 'strimgname' },
19                     { name: 'strostype' },
20                     { name: 'icpunum' },
21                     { name: 'imemorycapacity' },
22                     { name: 'idiskcapacity' }
23             ]);
24      //數據源
25      var store = new Ext.data.Store({
26                 proxy: new Ext.data.HttpProxy({
27                     url: 'testServlet',
28                     method: 'GET' 
29                 }),
30                 reader: dataReader,
31                 sortInfo: {field: 'strostype', direction: 'DESC'},
32                 autoLoad:false
33             });
34             store.load({params:{start:0,limit:8}});//加載數據時發送分頁參數
35      //顯示欄
36      var dataColumns = new Ext.grid.ColumnModel({
37                  
38                 columns: [
39                     new Ext.grid.RowNumberer(),//行號
40                      sm,
41                     { header: "虛擬機名稱",draggable:true, dataIndex: 'strimgname',sortable: true,resizable:false,
42                     renderer:function(value, cellmeta, record,rowIndex){
43                     return '<a href="javascript:void(0);" title="'+value+'" onclick=alert("'+record.data.strimgname+':girdID='+grid.getId()+',行下標='+rowIndex+'")>'+value+'</a>';
44                 }},
45                     { header: "類型", dataIndex: 'strostype',resizable:false,sortable: true },
46                     { header: "CUP數量", dataIndex: 'icpunum',sortable: true},
47                     { header: "內存", dataIndex: 'imemorycapacity',sortable: true },
48                     { header: "硬盤", dataIndex: 'idiskcapacity',sortable: true }
49                 ],
50                 defaults: {
51                     align: 'center'
52                     
53                 }
54             });
55     //組裝表格
56     var grid = new Ext.grid.GridPanel({
57                 store: store,
58                 cm: dataColumns, 
59                 renderTo: Ext.getBody(),
60                 autoExpandColumn: 1,
61                 stripeRows: true,
62                 autoHeight: true,
63                 buttonAlign:'center',
64             //    border: false,
65                 sm:sm,
66                 disableSelection: true,
67                 frame: true,
68                 loadMask:true,// '正在加載數據,請稍侯……提示
69                 //stripeRows: true, //斑馬線效果 
70                 width: 950,
71                 
72                 title:'表格',
73                 viewConfig: {   forceFit: true  }//使列自動均分
74                 ,buttons: [{
75                     text: "重新加載"
76                         ,handler:function(){
77                         store.load({params:{start:0,limit:8}});
78                         alert(store.getAt())
79                     }
80                 }],
81                 tbar:new Ext.Toolbar({//頂部工具欄
82                      items:[
83                         new Ext.form.Label({ text:'名稱: ' }),
84                         id,{ 
85                             text: '查詢'
86                          } 
87                     ]
88 
89                 }),
90                 bbar:['->',//底部工具欄
91                     new Ext.PagingToolbar({//分頁組件
92                     pageSize:8,
93                     store:store,
94                     displayInfo:true,
95                     emptyMsg:'沒有數據顯示'
96                 })]
97             });
98 })

代碼清單3、數據源接收的數據格式(servlet里響應的格式)

1 String str = req.getParameter("limit");
2         String str1 = req.getParameter("start");
3         Test t  = new Test();
4         List<Map<String,String >> list  = t.getData(str,str1);
5         JSONObject obj = new JSONObject();
6         JSONArray js = new JSONArray();
7         obj.put("data", js.fromObject(list));
8         obj.put("count", 10); //統計數量,這里寫死10條
9         resp.getWriter().write(obj.toString());//json格式化后輸出

 

最后貼出效果圖:

 

只有一個感覺,界面視圖組件化,也是ExtJs的最大特點,豐富的UI


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM