2013-07-23 2 views
0

J'ai une grille EXT JS 4.2 qui a 2 colonnes qui utilisent le moteur de rendu pour placer les cases à cocher dans une colonne et les cases d'option dans une autre. Comment puis-je auto incrémenter les ID sur ces entrées HTML afin que je puisse spécifiquement les cibler via EXT JS (voir colonnes Full »et « primaire »)Grille EXT JS - Entrées de rendu à incrémentation automatique

// Render library grid 
var grid4 = Ext.create('Ext.grid.Panel', { 
    xtype: 'gridpanel', 
    id:'button-grid', 
    store: data, 
    columns: [ 
     {text: "Library", width: 170, sortable: true, dataIndex: 'name'}, 
     {text: "Market", width: 125, sortable: true, dataIndex: 'market'}, 
     {text: "Expertise", width: 125, sortable: true, dataIndex: 'expertise'}, 
     {text: 'Full', dataIndex:'isFull', renderer: function() { 
      var rec = grid4.getStore().getAt(this.rowIndex); 
      return "<input type='checkbox' id='"+rec+"' />"; 
     }}, 
     {text: 'Primary', dataIndex:'isPrimary', renderer: function() { 
      return "<input type='radio' />"; 
     }}, 
    ], 

    columnLines: false, 
    selModel: selModel, 

    // inline buttons 
    dockedItems: [{ 
     xtype: 'toolbar', 
     dock: 'bottom', 
     ui: 'footer', 
     layout: { 
      pack: 'center' 
     }, 
     items: [] 
    }, { 
     xtype: 'toolbar', 
     items: [] 
    }], 

    width: 600, 
    height: 300, 
    frame: true, 
    title: 'Available Libraries', 
    iconCls: 'icon-grid', 
    renderTo: Ext.get('library-grid') 
}); 

MISE À JOUR: L'ID de sont maintenant Incrémentation, Je vous remercie! Maintenant, j'ai une autre question: Je ne vois pas le drapeau vérifié: coché lorsque je vérifie un élément dans la grille EXT, comment je ferais quelque chose comme le code ci-dessous. Je veux vérifier si l'élément est vérifié

    if(document.getElementById("#isFull-"+record['index']+"").checked == true){ 
        var myVar = true; 
       } 
+0

Je ne suis pas sûr de ce que vous êtes après. Dans la fonction de rendu pour la colonne 'Complète', la variable 'rec' ne contient-elle pas un numéro d'index que vous pouvez utiliser? –

+0

Non, c'était moi qui essayait d'obtenir le rowIndex réel mais tout ce qui apparaît pour 'rec' est UNDEFINED – xXPhenom22Xx

Répondre

2

Le renderer prend un tas d'arguments automatiquement, l'un qui est le rowIndex. Vous devriez être en mesure de le faire pour donner l'identifiant unique que vous voulez:

{ 
    text: 'Full', 
    dataIndex:'isFull', 
    renderer: function(value, meta, record, rowIndex, colIndex) 
    { 
     return '<input type="checkbox" id="isFull-' + rowIndex + '" />'; 
    } 
} 

Voir plus ici: http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.grid.column.Column-cfg-renderer

+0

(voir la mise à jour ci-dessus) – xXPhenom22Xx