combobobox 확장 드롭다운 Grid
3278 단어 ext
/**
* ComboBoxGrid
*
* @xtype 'combogrid'
* @author chengbao_zhu
*/
ComboBoxGrid = Ext.extend(Ext.form.ComboBox, {
gridHeight : 180,
listAlign : 'tr-br',
listWidth : 300,
store : new Ext.data.SimpleStore({
fields : [],
data : [[]]
}),
resizable : false,
// Default
editable : false,
mode : 'local',
triggerAction : 'all',
maxHeight : 500,
selectedClass : '',
onSelect : Ext.emptyFn,
emptyText : '\u8bf7\u9009\u62e9...',
/**
* ----------------------------------
* GRID
* ----------------------------------
*/
gridClk : function(grid, rowIndex, e) {
this.setRawValue(grid.getRecord(rowIndex).data[this.displayField]);
this.setValue(grid.getRecord(rowIndex).data[this.valueField]);
this.collapse();
this.fireEvent('gridselected', grid.getRecord(rowIndex));
},
initLayout : function(){
this.grid.autoScroll = true;
this.grid.height = this.gridHeight;
this.grid.containerScroll = false;
this.grid.border=false;
this.listWidth = this.grid.width+3;
},
/**
* Init
*/
initComponent : function() {
ComboBoxGrid.superclass.initComponent.call(this);
this.initLayout();
this.tplId = Ext.id();
// overflow:auto"
this.tpl = '<div id="' + this.tplId + '" style="height:' + this.gridHeight
+ ';overflow:hidden;"></div>';
//Add Event
this.addEvents('gridselected');
},
/**
* ------------------
* Listener
* ------------------
*/
listeners : {
'expand' : {
fn : function() {
if (!this.grid.rendered && this.tplId) {
//this.initComponent();
this.initLayout();
this.grid.render(this.tplId);
this.store = this.grid.store;
this.store.reload();
if(this.store.getCount()==0){
this.store.add(new Ext.data.Record([{}]));
}
//this.grid.store.reload();
this.grid.on('rowclick', this.gridClk, this);
}
this.grid.show();
}
//single : true
},
'render' : {
fn : function() {
}
},
'beforedestroy' : {
fn : function(cmp) {
this.purgeListeners();
this.grid.purgeListeners();
}
},
'collapse' : {
fn : function(cmp) {
/**
* store 0
*/
if(this.grid.store.getCount()==0){
this.store.add(new Ext.data.Record([{}]));
}
}
}
}
});
/**
* ---------------------------------
* register:'combotree'
* ---------------------------------
*/
Ext.reg('combogrid', ComboBoxGrid);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.