Je travaille sur un projet ExtJS 6.2. J'ai besoin d'effectuer certaines opérations lorsque les colonnes d'une grille ont été redimensionnées. Je pense que l'événement correct pour le faire est columnresize. Le problème est, puisque les colonnes sont chargées dynamiquement à partir d'une base de données, cet événement est déclenché chaque fois qu'une nouvelle colonne est ajoutée à la grille, et je voudrais l'empêcher. Je veux dire, j'ai besoin que cet événement soit déclenché seulement quand chaque colonne est chargée.ExtJS empêche l'événement resizecolumn lors du chargement des colonnes
J'ai essayé de mettre un drapeau (nommé lFirstInit) qui serait faux une fois que les colonnes de base de données sous forme chargées, mais l'événement columnresize continue d'être tiré depuis le début.
Comment pourrais-je aborder cela, s'il vous plaît? Merci.
Vue:
Ext.define('App.view.TMainBrowseGrid', {
extend: 'Ext.grid.Panel',
alias: 'widget.TMainBrowseGrid',
requires: [
'App.view.TMainBrowseGridViewModel',
'App.view.override.TMainBrowseGrid',
'Ext.view.Table',
'Ext.grid.column.RowNumberer',
'App.view.TMainBrowseGridViewController'
],
controller: 'TMainBrowseGrid',
config: {
oParent: null,
cBrwName: '',
cCodForm: ''
},
viewModel: {
type: 'TMainBrowseGrid'
},
flex: 1,
columns: [
{
xtype: 'rownumberer',
itemId: 'oColRowNum'
}
],
listeners: {
columnresize: 'onGridpanelColumnResize',
}
});
Contrôleur
Ext.define('App.view.TMainBrowseGridViewController', {
extend: 'Ext.app.ViewController',
alias: 'controller.TMainBrowseGrid',
onGridpanelColumnResize: function (component, column, width, eOpts) {
// THINGS TO DO...
}
});
Avez-vous compte le nombre de colonnes qui seraient rendues sur l'interface utilisateur? Si oui, vous pouvez comparer le nombre de colonnes générées avec le nombre réel de colonnes. Si vous pouvez démontrer un code fictif, je peux le coder. – Tejas
Pourriez-vous ajouter l'écouteur 'columnresize' par programmation dans l'écouteur' refresh' de la vue grille? – chrisuae