Ext의 TriggerField 문제
4406 단어 ext
Ext.form.ShiftDefRefField = Ext.extend(Ext.form.TriggerField, {
triggerClass: 'x-form-ref-trigger',
initComponent: function() {
Ext.form.ComboBox.superclass.initComponent.call(this);
this.ds = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({ url: 'GetSomeShiftDefRef', method: 'GET' }),
reader: new Ext.data.JsonReader({ totalProperty: 'totalProperty', root: 'root', id: 'id' },
[{ name: 'ID' }, { name: 'Code' }, { name: 'Name' }, { name: 'Description' }, { name: 'ShiftType'}])
});
this.ButtonOK = new Ext.Button({ id: 'RefButtonOK', text: 'OK', tooltip: 'OK', iconCls: 'add' });
this.sm = new Ext.grid.CheckboxSelectionModel();
this.cm = new Ext.grid.ColumnModel([
this.sm,
{ header: 'Code', width: 100, dataIndex: 'Code', sortable: true },
{ header: 'Name', width: 100, dataIndex: 'Name', sortable: true },
{ header: 'Description', width: 100, dataIndex: 'Description', sortable: true },
{ header: 'ShiftType', width: 100, dataIndex: 'ShiftType', sortable: true}]);
this.gridMain = new Ext.grid.GridPanel({
store: this.ds,
cm: this.cm,
sm: this.sm,
stripeRows: true,
height: 300,
width: 500,
loadMask: true,
bbar: new Ext.PagingToolbar({
pageSize: 20,
store: this.ds,
displayInfo: true,
displayMsg: 'From {0} to {1} , total: {2}',
emptyMsg: "No record"
}),
tbar: new Ext.Toolbar({
items: [this.ButtonOK]
})
});
this.windowRef = new Ext.Window({
layout: 'fit',
modal: true,
height: 300,
width: 500,
title: 'Select',
closeAction: 'hide',
plain: true,
items: this.gridMain
});
this.ButtonOK.on('click', this.ButtonOK_Click, this, { preventDefault: true });
},
ButtonOK_Click: function() {
var selectedItems = this.gridMain.selModel.selections.keys;
if (selectedItems.length == 0) {
Ext.MessageBox.alert('Error', 'Please select on record!');
}
else {
var selectedRow = this.gridMain.getSelectionModel().getSelected();
this.windowRef.hide();
// this.setValue(selectedRow.get('Code'));
var text = selectedRow.get('Code');
Ext.form.ShiftDefRefField.superclass.setValue.call(this, text);
}
},
onTriggerClick: function() {
this.ds.load({ params: { start: 0, limit: 20} });
this.windowRef.show();
}
});
이것은 그 컨트롤의 코드이다
{ header: "ShiftDef", width: 100, dataIndex: 'ShiftDef', sortable: true, editor: ShiftDefRef }
컨트롤을 사용하는 EditorGrid 열
-------------------------------------------------------------
------------------------------------------------------------------
조금 더 설명하자면:
이 확장 컨트롤러는 initComponent에서 1Grid를 만들었습니다
this.ButtonOK.on('click', this.ButtonOK_Click, this, { preventDefault: true });
Grid의 Button에 이벤트 처리 추가
그리고 Button OK_Click에서 Windows를 닫고 ID를 반환합니다.
하지만 이 방법:
var selectedRow = this.gridMain.getSelectionModel().getSelected();
this.windowRef.hide();
//this.setValue(selectedRow.get('Code'));
var text = selectedRow.get('Code');
Ext.form.ShiftDefRefField.superclass.setValue.call(this, text);
윈도우도 닫혔고, 코드의 값도 얻었습니다.
바로 이것입니다.setValue() 메서드가 작동하지 않음(IE7에서 가끔 작동)
-------------
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ExtJS 3.2 학습 노트(3) 사용자 정의 이벤트Extjs에서 모든 상속은 Ext.util에서 합니다.Observable 클래스의 컨트롤은 이벤트를 지원할 수 있습니다. 클래스에 대해 이벤트를 사용자 정의하려면 다음 절차를 따르십시오. 1, 먼저 클래스를 정의합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.