ExtJs之gridPanel的属性表格,编辑表格,表格分页,分组等技巧

简介:

这里藏的配置确实多。。

慢慢实践吧。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<! DOCTYPE html>
< html >
< head >
     < title >ExtJs</ title >
         < meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     < link rel="stylesheet" type="text/css" href="ExtJs/packages/ext-theme-crisp/build/resources/ext-theme-crisp-all.css">
         < script type="text/javascript" src="ExtJs/ext-all.js"></ script >
         < script type="text/javascript" src="ExtJs/bootstrap.js"></ script >
         < script type="text/javascript" src="ExtJs/packages/ext-theme-crisp/build/ext-theme-crisp.js"></ script >
 
     < style type="text/css">
       #uses the following css:
       .red-row{ background-color: #F5C0C0 !important; }
       .yellow-row{ background-color: #FBF8BF !important; }
       .green-row{ background-color: #99CC99 !important; }
     </ style >
 
     < script type="text/javascript">
     Ext.onReady(function(){
       function rendererDescn(value, cellmeta, record, rowIndex, columnIndex, store){
         var str = "< input type='button' value='查看详细信息' onclick='alert(\"" +
         "这个单元格的值为: " + value + "\\n" +
         "这个单元格的配置是: {cellID" + cellmeta.cellID + ", id: " + cellmeta.id + ", css: " + cellmeta.css + "}\\n" +
         "这个单元格对应的record是: " + record + ", 一行里的数据都在里边\\n" +
         "这是第" + rowIndex + "行\\n" +
         "这是第" + columnIndex + "列\\n" +
         "这个表格对应的Ext.data.Store在这里: " + store + ", 随便用吧." +
         "\")'>"
         return str;
       }
 
       var sm = new Ext.selection.CheckboxModel({stringSelect: true});
 
 
       var columns =[
         new Ext.grid.RowNumberer(),
         {header: '编号', dataIndex: 'id', width:80, sortable: false},
         {header: '名称', dataIndex: 'name', editor: {allowBlank: false}, width:180},
         {header: '描述', dataIndex: 'descn', renderer: rendererDescn, width:200},
 
       ];
 
       var store = new Ext.data.ArrayStore({
         proxy: {
           type: 'ajax',
           url: 'source.html',
           reader: {
             type: 'json',
             totalProperty: 'totalProperty',
             root: 'root',
             idProperty: 'id'
           }
         },
         groupField: 'id',
         sorter: [{property: 'id', direction: 'ASC'}],
         fields: [
           {name: 'id'},
           {name: 'name'},
           {name: 'descn'}
         ]
       });
 
 
       var grid = new Ext.grid.GridPanel({
         enableColumnMove: false,
         enableColumnResize: true,
         stripeRows: true,
         autoHeight: true,
         loadMask:true,
         forceFit: true,
         renderTo: 'grid',
         store: store,
         columns: columns,
         selModel: sm,
         features: [{ftype: 'grouping'}],
         plugins: [
           Ext.create('Ext.grid.plugin.CellEditing', {
             clicksToEdit: 1
           })
         ],
         tbar: ['-',{
           text: '增加一行',
           handler: function(){
             var p = {
               id: '',
               name: '',
               descn: '',
             };
             store.insert(0, p);
           }
         }, '-', {
           text: '删除一行',
           handler: function() {
             Ext.Msg.confirm('notice', 'are you sure delete?', function(btn){
               if(btn == 'yes'){
                 var sm = grid.getSelectionModel();
                 var record = sm.getSelection()[0];
                 store.remove(record);
               }
             });
           }
         }, '-'],
         bbar: new Ext.PagingToolbar({
           pageSize: 30,
           store: store,
           displayInfo: true,
           displayMsg: '显示第{0} 条到 {1}条记录, 一共{2}条',
           emptyMsg: '没有记录'
         })
       });
       store.load();
 
       var grid2 = new Ext.grid.PropertyGrid({
         title: '属性表格',
         autoHeight: true,
         width:300,
         renderTo: 'grid2',
         viewConfig: {
           forceFit: true
         },
         source: {
           '名字': '不告诉你',
           '创建时间': new Date(),
           '是否有效': false,
           '版本号': .01,
           '描述': '嗯,我也没啥可描述的'
         }
       });
     });
     </ script >
</ head >
< body style="margin: 20px">
   < div id='grid' style="width: 800px"></ div >
   < div id='grid2' style="width: 800px"></ div >
</ body >
</ html >

  

目录
相关文章
|
9月前
|
JavaScript 前端开发 Java
72jqGrid 分组表头 - 有合并列的样式
72jqGrid 分组表头 - 有合并列的样式
42 0
|
9月前
|
JSON JavaScript 前端开发
77jqGrid - 带有汇总页脚的分组
77jqGrid - 带有汇总页脚的分组
26 0
|
15天前
|
JavaScript
【UI】 elementUI的select-tree组合下拉框,选择后下拉框不收起
【UI】 elementUI的select-tree组合下拉框,选择后下拉框不收起
26 1
|
2月前
elementUI 写一个表头列名、表体单元格样式、翻页器相对较为动态的表格el-table
elementUI 写一个表头列名、表体单元格样式、翻页器相对较为动态的表格el-table
elementUI 写一个表头列名、表体单元格样式、翻页器相对较为动态的表格el-table
|
9月前
|
JavaScript 前端开发 Java
71jqGrid 分组表头 - 没有合并列的样式
71jqGrid 分组表头 - 没有合并列的样式
21 0
|
9月前
|
JavaScript 前端开发
50jqGrid 分组 - 汇总页脚
50jqGrid 分组 - 汇总页脚
42 0
Element-ui 表格 (Table) 组件中动态合并单元格
Element-ui 表格 (Table) 组件中动态合并单元格
652 0
Element-ui 表格 (Table) 组件中动态合并单元格
|
缓存 JavaScript 前端开发
el-table 列的动态显示与隐藏
当我们在对表格数据查看的时候,可能某些列的数据是当前想要重点关注的,而某些列并不需要展示出来,我们就可以通过对表格的列进行实时的一个切换去实现动态的显示与隐藏。
|
JavaScript 测试技术 Python
Easyui datagrid 实现表格记录拖拽
Easyui datagrid 实现表格记录拖拽
151 0
|
存储 前端开发 数据库
el-table表格拖动列记住列宽度功能(刷新页面还在)
el-table表格拖动列记住列宽度功能(刷新页面还在)
325 0