숫자 타입은 사실 별건 없다.
xtype을 numberfield로만 지정해주면 특별할건 없지만서도...그리드에서는 숫자끼리 연산이 일어날 수 있으니 이 예제까지 구현해 보려고 한다. (원가 * 갯수라든가...)
1. 일반
1
2
3
4
5
6
7
8
9
10
11
12
|
{
xtype : 'numberfield',
name : 'con_amt',
id : 'con_amt',
emptyText : '0',
labelAlign : 'right',
fieldLabel: '공사대금',
labelWidth: 80,
width : 180,
maxValue: 1000000000, //최고값
minValue: 10000 //최저값
}
|
cs |
2. 그리드
1
2
3
4
5
6
7
8
9
10
11
12
|
{
header: '단가',
dataIndex : 'COST',
align : 'right',
width : 120,
editor: new fm.NumberField({
allowBlank: false,
maxValue: 999999999, //
minValue: 0 //최저값
}),
renderer : Ext.util.Format.number(value, "0,000") //표현 식
}
|
cs |
3. 그리드 셀값 연산
단가 COST값과 수량 QTY값을 곱해서 금액 AMOUNT에 셋팅해주는 코드이다.
editor안에 listeners를 정의하고 그 안에 change함수를 써서 값이 변할 때마다 이벤트가 발생한다.
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
|
{
header: '수량',
dataIndex : 'QTY',
align : 'center',
width : 80,
editor: new fm.NumberField({
allowBlank: false,
maxValue: 999999999,
minValue: 0,
listeners : {
change : function(f, e, g) {
var grid = f.up("grid");
var row = grid.getSelection()[0]; //현재 행
var cost = row.get("COST"); //현재 행의 COST값
var qty = e; //선택한 셀의 값
var amount = 0;
if(cost == null || cost == "") cost = 0;
if(qty == null || qty == "") qty = 0;
amount = qty * cost;
row.set("AMOUNT", amount); //현재 행의 AMOUNT에 계산된 값을 셋팅
}
}
}),
renderer : Ext.util.Format.number(value, "0,000")
},{
header: '단가',
dataIndex : 'COST',
align : 'right',
width : 120,
editor: new fm.NumberField({
allowBlank: false,
maxValue: 999999999,
minValue: 0,
listeners : {
change : function(f, e, g) {
var grid = f.up("grid");
var row = grid.getSelection()[0]; //현재 행
var cost = e; //선택한 셀의 값
var qty = row.get("QTY"); //현재 행의 QTY값
var amount = 0;
if(cost == null || cost == "") cost = 0;
if(qty == null || qty == "") qty = 0;
amount = qty * cost;
row.set("AMOUNT", amount);
}
}
}),
renderer : Ext.util.Format.number(value, "0,000")
},{
header: '금액',
dataIndex : 'AMOUNT',
align : 'right',
width : 120,
editor: new fm.NumberField({
allowBlank: false,
maxValue: 999999999,
minValue: 0
}),
renderer : Ext.util.Format.number(value, "0,000")
}
|
cs |
- 끝 -
'extjs' 카테고리의 다른 글
ExtJs 셀렉트박스, 콤보박스 xtype:combobox (0) | 2019.09.02 |
---|---|
ExtJs 날짜타입 xtype : datefield (0) | 2019.09.02 |
ExtJs grid panel 기본구조 및 listener (0) | 2019.08.30 |
ExtJs 초간단 소개 (0) | 2019.08.30 |