Extjs 드롭다운 Grid 팝업
7227 단어 ExtJs
/**
* Gird
*/
Ext.define("Common.picker.GridPicker", {
extend: "Ext.form.field.Picker",
alias: 'widget.gridPicker',
displayField: null,
valueField: null,
matchFieldWidth: false,
store: null,
columns: null,
pickerWidth: 400,
pickerHeight: 300,
editable: false,
/**
* Picker
* @return {Ext.grid.Panel}
*/
createPicker: function() {
var me = this,
picker = me.createComponent();
picker.on("itemclick", me.onItemClick, me);
me.on("focus", me.onFocusHandler, me);
return picker;
},
/**
* gridPanel, grid( )
* @return {Ext.grid.Panel}
*/
createComponent: function() {
var me = this,
picker = Ext.create("Ext.grid.Panel", {
floating: true,
store: me.store,
columns: me.columns,
width: me.pickerWidth,
heigkt: me.pickerHeight,
dockedItems: [{
xtype: 'pagingtoolbar',
store: me.store,
dock: 'bottom',
displayInfo: true
}]
});
return picker;
},
/**
* grid
*/
onItemClick: function(view, record, item, index, e, eOpts ) {
var me = this;
me.setValue(record.get(me.valueField));
me.getPicker().hide();
me.inputEl.focus();
},
/**
*
*/
onFocusHandler: function() {
var me = this;
if(!me.isExpanded) {
this.expand();
this.focus();
}
},
/**
*
* @param {Mixed} value
* @return {Common.picker.GridPicker} this
*/
setValue: function(value) {
var me = this,
record;
me.value = value;
if (me.store.isLoading()) {
// store
return me;
}
if(value === undefined) {
return me;
} else {
record = me.getPicker().getSelectionModel().getSelection()[0];
}
me.setRawValue(record ? record.get(me.displayField) : '');
return me;
},
/**
* field
* @return {String}
*/
getValue: function() {
return this.value;
},
/**
*
* @return {String}
*/
getSubmitValue: function(){
return this.value;
}
});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
문자열 길이를 계산하고 중국어로 두 개를 계산합니다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.