2010-11-01 31 views
1

Je dois configurer des cases à cocher CheckboxGroup avec des valeurs chargées avec json à partir de certaines URL. Qu'est-ce qu'un format JSON correct?json pour charger les valeurs dans l'éditeur de grille checkboxgroup d'extjs

Un grand merci pour votre aide!

Mise à jour: Je vais clarifier mon problème.

J'utilise EditorGridPanel. Les lignes sont des périodes. Il y a des colonnes Start_at, Finish_at, Region. Le premier et le deuxième sont la date et tout va bien avec eux. Problème avec la région qui est en fait une CheckboxGroup avec une case à cocher pour chaque jour de la semaine - lundi, mardi, etc. Donc:

D'abord, je suis chargement des données du serveur en magasin

function setupDataSource() { 
    row = Ext.data.Record.create([ 
     { name: 'start_at', type: 'string' }, 
     { name: 'finish_at', type: 'string' }, 
     { name: 'region', type: 'string' } 
    ]);  

    store = new Ext.data.Store({ 
     url: '/country/195/periods', 
     reader: new Ext.data.JsonReader(
      { 
       root: 'rows', 
       id: 'id' 
      }, 
      row 
     ) 
    }); 

    store.load(); 

}

url URL: '/ pays/195/périodes' retourne JSON:

{"rows": [{"region": {"cbvert_1": 1, "cbvert_2": 0, "cbvert_3": 1, "cbvert_4": 0, "cbvert_5": 1, "cbvert_6": 0, "cbvert_7": 1}, "start_at": "2010-10-17", "id": 1, "finish_at": "2010-10-28"}]} 

Je suis la construction d'une grille:

function buildGrid() { 

    sm = new Ext.grid.RowSelectionModel();  
    cm = new Ext.grid.ColumnModel([ 

     // ... Start at and Finish at columns definition here ... 

     { header: 'Region', 
      dataIndex: 'region', 
      width: 150, 
      editor: new Ext.form.CheckboxGroup({  
      xtype: 'checkboxgroup', 
     columns: 7, 
     vertical: true, 
     items: [ 
      {boxLabel: 'M', name: 'cbvert_1', inputValue: 1}, 
      {boxLabel: 'T', name: 'cbvert_2', inputValue: 1}, 
      {boxLabel: 'W', name: 'cbvert_3', inputValue: 1}, 
      {boxLabel: 'T', name: 'cbvert_4', inputValue: 1}, 
      {boxLabel: 'F', name: 'cbvert_5', inputValue: 1}, 
      {boxLabel: 'S', name: 'cbvert_6', inputValue: 1}, 
      {boxLabel: 'S', name: 'cbvert_7', inputValue: 1}, 
        ] 
       }), 
      renderer: function(value) {} 
     }]); 

    // ... 

}

Alors, quand je suis en cliquant sur une cellule de la grille j'ai besoin de cases avec des valeurs présélectionnées précédemment stockées dans la base de données. Maintenant, toutes les cases à cocher sont vides, mais elles doivent être 1010101 en JSON.

Veuillez me signaler les erreurs ou peut-être une sorte de solution. Toute aide est la bienvenue. Merci beaucoup!

Répondre

1

Check this out: http://www.sencha.com/forum/showthread.php?47243-Load-data-in-checkboxgroup

Mise à jour: Retirez la déclaration de type du champ de la région. Vous n'avez pas besoin d'une chaîne mais d'un objet (à partir de JSON). Cela fonctionne très bien de cette façon :)

+0

Merci Donatas pour votre aide! Malheureusement, je n'ai pas trouvé de solution de travail là-bas. J'ai essayé d'appliquer un format json, mais ne fonctionne toujours pas :(.J'ai mis à jour mon poste avec une description détaillée.S'il vous plaît dire ce que vous en pensez? Merci! – user248356

+0

Merci! Solution dans 'Mise à jour:' travail parfait! – user248356