博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ExtJS4.2学习(八)表格限制输入数据的类型
阅读量:6403 次
发布时间:2019-06-23

本文共 2241 字,大约阅读时间需要 7 分钟。

如何软件和系统都会对输入的数据类型进行限制。Ext提供了多种数据类型的组件,比如NumberField限制只能输入数字,ComboBox限制只能输入备选项,DateField限制只能选择日期,CheckBox则限制从true和false中选择其一,等等。
效果:

6f689c091b5b081c67457acaaba5cd92.jpg
选择列:
6bc1f4db8430aa8a75d443c273bf2275.jpg
日期列:
02bb5c4b5bb9080f1c57b78aabbc6c2b.jpg
判断列:
7a1b1a78d5f41c0c348f64dfcfe4469c.jpg
现在我们来修改之前的数据,让数据类型变得更丰富,如下面的代码:

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
Ext.onReady(
function
(){
    
var 
comboData=[
                   
[
'0'
,
'新版ext教程'
],
                   
[
'1'
,
'ext在线支持'
],
                   
[
'2'
,
'ext扩展'
]
                   
];
    
var 
columns = [{
        
header:
'数字列'
,
        
dataIndex:
'number'
,
        
editor:
new 
Ext.form.NumberField({
            
allowBlank: 
false
,
            
allowNegative: 
false
,
            
maxValue: 10
        
})
    
},{
        
header:
'选择列'
,
        
dataIndex:
'combo'
,
        
editor:
new 
Ext.form.ComboBox({
            
store: 
new 
Ext.data.SimpleStore({
                
fields:[
'value'
,
'text'
],
                
data: comboData
            
}),
            
emptyText: 
'请选择'
,
            
mode: 
'local'
,
            
triggerAction: 
'all'
,
            
valueField: 
'value'
,
            
displayField: 
'text'
,
            
editable: 
false
        
}),
        
renderer: 
function
(value){
            
return 
comboData[value][1];
        
}
    
},{
        
header:
'日期列'
,
        
dataIndex:
'date'
,
        
editor:
new 
Ext.form.DateField({
            
format: 
'Y-m-d'
,
            
minValue: 
'2007-12-14'
,
            
disabledDays: [0, 6],
            
disabledDaysText: 
'只能选择工作日'
        
}),
        
renderer: 
function
(value) {
            
return 
Ext.Date.format(value, 
"Y-m-d"
);
        
}
    
},{
        
header:
'判断列'
,
        
dataIndex:
'check'
,
        
editor:
new 
Ext.form.Checkbox({
            
allowBlank: 
false
        
}),
        
renderer:
function
(value) {
            
return 
value ? 
'是' 
'否'
;
        
}
    
}];
    
// 放到grid里显示的原始数据
    
var 
data = [
        
[1.1,1,
new 
Date(),
true
],
        
[2.2,2,
new 
Date(),
false
],
        
[3.3,0,
new 
Date(),
true
],
        
[4.4,1,
new 
Date(),
false
],
        
[5.5,2,
new 
Date(),
true
]
    
];
           
       
    
var 
store = 
new 
Ext.data.ArrayStore({
        
data: data,
        
fields: [
            
{name: 
'number'
},
            
{name: 
'combo'
},
            
{name: 
'date'
},
            
{name: 
'check'
}
        
]
    
});
    
store.load();
       
    
var 
grid = 
new 
Ext.grid.GridPanel({
        
autoHeight: 
true
,
        
renderTo: 
'grid'
,
        
store: store,
        
columns: columns,
        
selType: 
'cellmodel'
,
        
plugins: [
            
Ext.create(
'Ext.grid.plugin.CellEditing'
, {
                
clicksToEdit: 1
            
})
        
]
    
});
});

大家仔细研究一下渲染函数renderer。经常有人会遇到EditorGrid里的ComboBox无法正常显示数据的情况,其实,这是因为少了这个renderer函数。当没写这个函数时,显示的数据是value值,而不是text。毕竟Editor里的编辑器只在实际编辑时起作用,表格与editor质检共享的是数据,显示层都要依靠各自的实现。不够这样做更灵活,不需要两者都使用一样的显示方式。

本文转自shyy8712872 51CTO博客,原文链接:http://blog.51cto.com/shuyangyang/1334068,如需转载请自行联系原作者

你可能感兴趣的文章
rocketmq 消息指定_RocketMQ入坑系列(一)角色介绍及基本使用
查看>>
redis zset转set 反序列化失败_掌握好Redis的数据类型,面试心里有底了
查看>>
p图软件pⅰc_娱乐圈最塑料的夫妻,P图永远只P自己,太精彩了吧!
查看>>
jenkins 手动执行_Jenkins 入门
查看>>
怎么判断冠词用a还是an_葡语干货 | 葡萄牙语冠词用法整理大全
查看>>
js传参不是数字_JS的Reflect学习和应用
查看>>
三个不等_数学一轮复习05,从函数观点看方程与不等式,记住口诀与联系
查看>>
右键新建文件夹_Macos电脑鼠标右键木有新建文档咋办,有办法,莫捉急
查看>>
卡尺测量的最小范围_汽车维修工具-测量用具
查看>>
网优5g前景_5G网络优化师前景怎么样?
查看>>
竞态条件的赋值_[译] part25: golang Mutex互斥锁
查看>>
delmatch oracle_完美完全卸载(清除)oracle数据库的方式(方法)
查看>>
pyqt 滚动条 美化_Pyqt5 关于流式布局和滚动条的综合使用示例代码
查看>>
51单机片 编译hex_单片机爬坑记-05-编译环境(完)
查看>>
java 正则表达式 img_Java正则表达式获得html字符串里的<img src=""/> 中的url列表
查看>>
dbutils java_Java篇-DBUtils与连接池
查看>>
java 文件crc校验_一个获取文件crc32校验码的简洁的java类 | 学步园
查看>>
java flatmapfunction_Java8 Stream flatmap中间操作用法解析
查看>>
java rmi spring 4.0_Java Spring RMI一些尝试
查看>>
JAVA怎么连接华为的HDFS系统_JAVA-API操作HDFS文件系统(HDFS核心类FileSystem的使用)...
查看>>