8
votes

Soulignage / Sélection de la rangée de grille dans EXTJS

Je suis Newbie à ext JS. Je travaille sur un panneau de grille dans lequel je sélectionne / cliquez sur l'une des lignes, certaines données relatives à la ligne sélectionnée sont affichées dans le panneau sous la grille. De plus, lorsque la fenêtre est chargée, le premier doit être sélectionné / en surbrillance par défaut. Actuellement, la grille et le panneau sont affichés correctement. Même les données relatives à la ligne sélectionnée sont affichées dans le panneau, mais la ligne n'est pas en surbrillance. J'ai essayé le grid.focusrow (0) code> & grid.getrow (0) .Highlight () code> méthodes mais ils ne fonctionnent pas. Vous trouverez ci-dessous mon code.

//the js file code
initComponent : function() { //within the window instance

    var single = false;
    var store = new Ext.data.XmlStore({//all necessary fields added}); //store
    HttpUtil.syncCall(this.url, "GET", this.loadStore, store,this);
    var acctTplMarkup = [//the fields here are displayed on row selection ];
                /*The template for displaying the details of the selected row */
                 this.acctTpl = new Ext.Template(acctTplMarkup);
    //check for request type, if type is range of checks create the grid
    if (single == false) {
        var gridView = new Ext.grid.GridView();
        var colModel = new Ext.grid.ColumnModel([ {
            header : 'Status',
            dataIndex : 'status'
        }, {
            header : 'Message',
            dataIndex : 'message'
        } ]);
        var selModel = new Ext.grid.RowSelectionModel({
            singleSelect : true
        });
        grid = new Ext.grid.GridPanel({
                                          ...
                        listeners : {
                render : function(grid) {
                    Ext.getCmp('check').store.on('load',function(store, records, options) { //check is the id value for the window instance
                         grid.getSelectionModel().selectFirstRow(); 
                    });
                }
            }
    }); //gridPanel
    } //if
    /* If request type is range select then display the grid  */
                ... 
    if (single == false) {
    grid.getSelectionModel().on('rowselect', function(sm, rowIdx, r) {
Ext.getCmp('check').acctTpl.overwrite(Ext.getCmp('detailPanel').body, r.data);
        }); //rowselect
    } //if

    Ext.apply(this, {
                                     ...
            listeners : {
            'afterrender' : function(){
            Ext.getCmp('check').acctTpl.overwrite(Ext.getCmp('detailPanel').body, this.store.getAt(0).data,true);
            }
        }
    });
    Check.superclass.initComponent.apply(this, arguments);

}, //initComponent


0 commentaires

4 Réponses :


12
votes

Il n'y a pas de getrow code> méthode dans ext.grid.gridpanel code>. Cependant, il y en a un dans ext.grid.gridview code>.

Pour mettre en surbrillance la ligne, vous devez effectuer les éléments suivants: p> xxx pré>

pour effectuer la ligne Sélection Vous utilisez la sélection de la grilleModel: P>

grid.getSelectionModel().selectRow(0)


3 commentaires

Hey merci pour votre réponse. J'ai déjà essayé ces méthodes mais elles ne fonctionnent pas. Ma grille est complète mais je ne peux pas mettre en évidence la première rangée. Est-ce qu'il y a un autre moyen?


Obtenez-vous des erreurs avec des méthodes mentionnées? Toutes les solutions de contournement possibles vous apporteront des problèmes supplémentaires à l'avenir, vous feriez mieux d'essayer d'obtenir le travail existant avant d'essayer quelque chose d'auto-fabriqué.


greveView (). getrow n'existe pas dans EXTJS 4; Utilisez greveView (). GetNode .



1
votes

Pour sélectionner une ligne à un index particulier, utilisez le modèle de sélection.

Ext.grid.GridPanel.getView().getSelectionModel().select(index);


0 commentaires

6
votes

composant: ext.grid.panel

version: 4.0.0

Pour sélectionner un élément et supprimer la sélection précédente: xxx

Pour sélectionner un élément et garder la sélection précédente: xxx


0 commentaires

0
votes

dans Sencha 7, vous pouvez sélectionner une ligne particulière par grid.setselection (article);

ref HTTPS: // docs.sencha.com/extjs/6.2.1/modern/ext.grid.grid.html#method-setselection


0 commentaires