8
votes

Comment puis-je ajouter des numéros de ligne à une grille extjs?

Dans un ExtJS GridPanel, est-il un moyen de concevoir une colonne dont le seul but est d'agir en tant que colonne de numéro de série? Cette colonne n'aura pas besoin d'une propriété DataUndex . En ce moment, j'utilise une fonction de numérotation de rangée personnalisée, mais cela signifie que le numéro de rangée est défini dans le fichier grid.js et toutes les colonnes de grid.ui.js doivent être copiées dans Grid.js. J'utilise le concepteur ext.

Edit: Le creux de ma question est: Y a-t-il un moyen de définir un numéro de rangée à l'aide du concepteur ext?


0 commentaires

4 Réponses :


17
votes

Tout ce dont vous avez besoin est un ext.grid.rowngrener code> dans votre définition de colonne.

var colModel = new Ext.grid.ColumnModel([
    new Ext.grid.RowNumberer(),
    {header: "Name", width: 80, sortable: true},
    {header: "Code", width: 50, sortable: true},
    {header: "Description", width: 200, sortable: true}
]);


0 commentaires

7
votes

pas une réponse, mais je veux juste partager ceci: -

sur le dessus du ext.grid.rowngrener code>, vous pouvez avoir ce petit hack nifty qui incristez correctement vos numéros correctement en fonction de Le numéro de page que vous affichez si vous avez implémenté PagingToolbar code> dans votre grille. p>

ci-dessous est mon exemple de travail. J'ai étendu l'original ext.grid.rowngrener code> pour éviter la confliction. P> xxx pré>


et le code ci-dessous est l'original renduer à partir de ext.grid.rowngrener code>, qui, à moi, assez moche car les chiffres sont fixés tout le temps quel que soit le numéro de page IT. P>

renderer : function(v, p, record, rowIndex){
    if(this.rowspan){
        p.cellAttr = 'rowspan="'+this.rowspan+'"';
    }
    return rowIndex+1;
}


0 commentaires

0
votes

EXTJS 4.2.1 Code de travail ci-dessous:

// Row numberer correct increasing
Ext.override(Ext.grid.RowNumberer, {
    renderer: function(v, p, record, rowIndex) {
        if (this.rowspan) {
            p.cellAttr = 'rowspan="'+this.rowspan+'"';
        }
        var st = record.store;

        if (st.lastOptions.page != undefined && st.lastOptions.start != undefined && st.lastOptions.limit != undefined) {
            var page = st.lastOptions.page - 1;
            var limit = st.lastOptions.limit;
            return limit*page + rowIndex+1;
        } else {
            return rowIndex+1;
        }
    }
});


0 commentaires

1
votes

pour la version 4.2 très très facile:

Ajoutez simplement une nouvelle colonne comme celle-ci: xxx


0 commentaires