J'ai une grille Ext avec le modèle CheckBox Selection et j'ai rendu les colonnes mobiles. Une fois que je déplace les colonnes, je ne suis pas en mesure de récupérer dataindex des colonnes, comment obtenir cela? J'avais modal cellulaire et je récupérait parfaitement avecComment obtenir des colonnes modifiées après columnmove() dans Ext Grid avec le modèle CheckBox Selection
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;
},
}
});
var = 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'
});
Ne pas obtenir les valeurs « selModel.getHeaderCt(). GetHeaderAtIndex (colIndex) .dataIndex »
Que voulez-vous dire « nouvelles colonnes »? Montrez votre code et où est exactement votre problème. De préférence avec un travail [violon] (https://fiddle.sencha.com/#home). – MarthyM
Les nouvelles colonnes désignent les colonnes après mouvement. –
Je ne vois pas 'colIndex' défini n'importe où, aussi, si vous avez besoin d'accéder' selModel.getHeaderCt(). GetHeaderAtIndex (colIndex) .dataIndex' dans une boucle, stockez-le dans une variable au préalable. Votre code est vraiment difficile à orienter. Si vous voulez juste obtenir un 'dataIndex' de la colonne déplacée, vous avez le' colum' accessible directement dans votre écouteur 'columnmove'. – MarthyM