0
我有一個帶有CheckBox選擇模型的Ext Grid,並且我已經創建了可移動列。一旦我移動列,我無法檢索列的dataindex,如何得到它?我有細胞模態的,我用完全檢索它如何在帶有CheckBox選擇模型的Ext Grid中的columnmove()之後獲取修改的列
var sm = Ext.create('Ext.selection.CheckboxModel', {
mode: 'SIMPLE',
checkOnly: true,
listeners: {
selectionchange: function(sm, selected, eOpts) {
listCB = selected;
var gridID = Ext.getCmp('CiEditGrid');
if(selected.length > 0){
gridID.getView().removeRowCls(0, 'hidden');
gridID.getView().addRowCls(0, 'custom-column1');
bEnableRow = true;
}else{
gridID.getView().addRowCls(0, 'hidden');
}
},
beforeselect: function(selModel, record, index) {
var gridID = Ext.getCmp('CiEditGrid');
popupIndex=index;
colIndex=ColumnIndex;
EditedValues.push({
colvalue:colIndex,
rowvalue:popupIndex
});
if (!((ColumnIndex == undefined || ColumnIndex == 0)))
return false;
},
beforedeselect: function(selModel, record, index) {
if (!(ColumnIndex == undefined || ColumnIndex == 0))
return false;
},
}
});
變種CiGrid = Ext.create( 'Ext.grid.Panel',{
store: mystore,
columns: datastore.columns,
selType: 'cellmodel',
selModel: sm,
id:'CiEditGrid',
height: 775,
columnLines: true,
enableColumnHide:false,
viewConfig: {
forceFit: false,
deferEmptyText: false,
stripeRows: true,
emptyText :'<div class="emptyTextClass">'+noRecordsFoundMsg+'</div>'
},
lockedViewConfig: {
emptyText: ''
},
listeners: {
afterrender: function(grid, eOpts){
var gridIndxArray = grid.columns;
for(var i=0; i<gridIndxArray.length; i++){
var Indx = i-1;
if(Indx == -1)
Indx = 0;
ColumnIndexArray.push({
dataIndx:gridIndxArray[i].dataIndex,
StoreIndx:Indx
});
}
},
columnmove: function(ct, column, fromIdx, toIdx, eOpts){
isColumnreconfigured = true;
fromCMIdx = fromIdx;
toCMIdx = toIdx;
},
itemclick: function(data, record, item, index, e, eOpts){
popupIndex = index;
var position = data.getPositionByEvent(e);
ColumnIndex = position.column;
if(index == 0){
multiCol.push({
colIndex:ColumnIndex
});
}
if(isColumnreconfigured){
for(var i=0; i<ColumnIndexArray.length; i++){
if(selModel.getHeaderCt().getHeaderAtIndex(colIndex).dataIndex == ColumnIndexArray[i].dataIndx){ //Not getting the value in selModel.getHeaderCt().getHeaderAtIndex(colIndex).dataIndex
colIndex = ColumnIndexArray[i].StoreIndx;
break;
}
}
}
}
},
cls: 'custom-dirty',
layout:'fit',
border: false,
autoWidth:true,
plugins: [cellEditing],
renderTo:'grid'
});
沒有得到的值「selModel.getHeaderCt()。getHeaderAtIndex(colIndex).dataIndex」
你是什麼意思「新列」?顯示你的代碼,確切地說是你的問題。最好有一個工作[小提琴](https://fiddle.sencha.com/#home)。 – MarthyM
新欄是指移動後的欄。 –
如果您需要在循環中訪問'selModel.getHeaderCt()。getHeaderAtIndex(colIndex).dataIndex',則在任何地方都看不到'colIndex',並且事先將其存儲在變量中。你的代碼真的很難定位。如果你只想得到被移動列的'dataIndex',你可以在'columnmove'監聽器中直接訪問'colum'。 – MarthyM