>  기사  >  웹 프론트엔드  >  Extjs EditorGridPanel_extjs의 ComboBox 열 표시 문제

Extjs EditorGridPanel_extjs의 ComboBox 열 표시 문제

WBOY
WBOY원래의
2016-05-16 18:05:161248검색

이 문제를 해결하려면 EditorGridPanel의 ColumnModel에 ComboBox가 표시되는 렌더러 속성을 사용하고 다음과 같이 다시 렌더링해야 합니다.

코드 복사 코드는 다음과 같습니다.

//Department list
var 콤보xDepartmentStore = new Ext.data.Store({
proxy: new Ext.data .HttpProxy({
url: "GetDepartmentJson .aspx",
메서드: 'GET'
}),
reader: new Ext.data.JsonReader({
root: 'data' ,
totalProperty: 'totalCount',
필드: [
{ 이름: 'departmentid', 매핑: 'ID' },
{ 이름: 'departmentname', 매핑: '이름' }
]

})
})
//Combobox 목록의 해당 Id 값에 따라 렌더링
function rendererMeterTypeCombobox(value, p, r) {
var index = 콤보xDepartmentStore.find(Ext.getCmp(' cbdepartment').valueField, value);
var Record = 콤보xDepartmentStore.getAt(index);
var displayText = ""; == null) {
return value;
} else {
return Record.data.astype; // 레코드
}
}에 설정된 데이터의 표시 필드 값을 가져옵니다.


var sm = new Ext.grid.CheckboxSelectionModel();

var cm = new Ext.grid.ColumnModel({
열: [sm, new Ext.grid .RowNumberer(), {
헤더: 'id',
dataIndex: 'id',
hidden: true
}, {
header: 'name',
width: 40,
dataIndex: '이름'
}, {
header: 'Department',
width: 80,
dataIndex: 'department',
renderer: rendererDepartmentCombobox,
editor: new Ext.form.ComboBox({
id: "cbdepartment", //
forceSelection: true,
selectOnFocus: true,
typeAhead: true,
triggerAction:이 있어야 합니다. 'all',
store: 콤보xDepartmentStore,
모드: 'local',
displayField: 'departmentname',
valueField: 'departmentid',
lazyRender: true
})
}],
기본값: {
zsortable: true,
menuDisabled: false,
width: 100
}
})

var editGrid = new Ext.grid.EditorGridPanel({
id: ' TestGrid',
store: store, //EditorGridPanel에서 사용되는 저장소
trackMouseOver: true,
disableSelection: false,
clicksToEdit: 1 , //편집할 클릭 횟수 설정
loadMask : true,
autoHeight: true,
cm: cm,
sm: sm,
viewConfig: {
columnsText: 'Show /hide columns',
sortAscText: '정렬 정렬',
sortDescText: '역순 정렬',
forceFit: true,
enableRowBody: true
},
bbar : new Ext.PagingToolbar({
pageSize: 25,
store: store,
displayInfo: true,
displayMsg: '현재 {0}부터 {1}까지 표시 중, 총 {2} records',
emptyMsg: "현재 기록이 없습니다."
})
})

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.