Obtenir le magasin de la valeur avec le nom de la colonne - EXTJS 4

Ext.define('GoogleMarkerModel', {
        extend: 'Ext.data.Model',
        fields: ['Locating','MainPower','Acc','PowerOff','Alarm','Speed','Direction','Latitude','Longitude','DateTime','MainID', 'DeviceID','IOState','OilState']
    });

    var MarkerStore = Ext.create('Ext.data.JsonStore', {
        model: 'GoogleMarkerModel',
        autoLoad: true,
        proxy: {
            type: 'ajax',
            url: 'get-googlemarker.php',
            baseParams: {  //here you can define params you want to be sent on each request from this store
                        mainid: 'value1'
                        },
            reader: {
                type: 'json',
                root: 'images'
            }
        }
    });

tree.on('checkchange', function(node){
        var data = node.data;
        Ext.MessageBox.show({
        title: 'Changed checkbox status',
        msg: 'MainID: ' + data.MainID + ' <br /> Checkbox status: ' + data.checked,
        icon: Ext.MessageBox.INFO
        });

        if (data.checked == true){
        MarkerStore.load({
                        params: {  //here you can define params on 'per request' basis
                                mainid: data.MainID,
                                }
                        })

        var options = {
        lat:MarkerStore[0].Latitude,
        lng:MarkerStore[0].Longitude,
        marker: {title:"Hello World!"},
        listeners: {
                     click: function(e){

                                         }
                    }     
        }     
        addDoctorLocation(options);           
        }       
    })

Et c'est un exemple pour récupérer la valeur de retour

http://localhost/GPS/examples/tabs/get-googlemarker.php?mainid=1  

retour

[{"ID":"1808","Locating":"1","MainPower":"0","Acc":"1","PowerOff":"1","Alarm":"128","Speed":"0","Direction":"293","Latitude":"5.391788482666016","Longitude":"100.29693603515625","DateTime":"2013-02-19 15:44:36","MainID":"1","IOState":"0","OilState":"0"}]

C'est la valeur de retour de get-googlemarker.php,
Je veux obtenir la Latitude de la valeur à enregistrer dans lat variable et la Longitude enregistrer dans longt variable. Quelque chose comme ceci:

Trouver la ligne où MainID est 1 et obtenir le nom de la colonne Latitude de la valeur.

Mise à JOUR 2

var lati,longi;
        var record = MarkerStore.findRecord('MainID',data.MainID);
        if(record) {
            lati = record.get('Latitude'); 
        longi = record.get('Longitude'); 
        }

Le dossier de retour est nulle, ne peut pas trouver le MainID = 1? Pourquoi? les données.MainID valeur est 1.

Mise à JOUR 3

Ext.define('GoogleMarkerModel', {
    extend: 'Ext.data.Model',
    idProperty:'MainID',
    fields: ['ID','Locating','MainPower','Acc','PowerOff','Alarm','Speed','Direction','Latitude','Longitude','DateTime','MainID','IOState','OilState']
});

var MarkerStore = Ext.create('Ext.data.JsonStore', {
    model: 'GoogleMarkerModel',
    autoLoad: true,
    proxy: {
        type: 'ajax',
        url: 'get-googlemarker.php',
        baseParams: {  //here you can define params you want to be sent on each request from this store
                    mainid: 'value1'
                    },
        reader: {
            type: 'json',
            idProperty : 'MainID',
        }

    }
});

J'ai ajouté idProperty, mais ne peut toujours pas de travail.

ERREUR
Obtenir le magasin de la valeur avec le nom de la colonne - EXTJS 4

DE CODE PLUS TARD,

tree.on('checkchange', function(node){
        var data = node.data;

        if (data.checked == true){
        MarkerStore.load({
                        params: {  //here you can define params on 'per request' basis
                                mainid: data.MainID,
                                }
                        })


        var lati,longi;
        var recordPos = MarkerStore.findBy(function(rec,id){
             return rec.data.MainID == data.MainID;
        }, this);
        if(recordPos > -1) {
           var record = MarkerStore.getAt(recordPos);
           lati = record.get('Latitude'); 
           longi = record.get('Longitude'); 
        }


        Ext.MessageBox.show({
        title: 'Changed checkbox status',
        msg: 'MainID: ' + data.MainID + ' <br /> Checkbox status: ' + data.checked + ' <br /> lati: ' + lati + ' <br />',
        icon: Ext.MessageBox.INFO
        });

        var options = {
        lat:lati,
        lng:longi,
        marker: {title:"Hello World!"},
        listeners: {
                     click: function(e){

                                         }
                    }     
        }     
        addDoctorLocation(options);           
        }       
    })

Toujours pas le lati valeur. Une idée?
Comment assurer que MarkerStore avoir les données à l'intérieur? Je pense que MarkerStore sont vides. Comment vérifier cela?

Mise à JOUR 4

var lati,longi;
        var recordPos = MarkerStore.findRecord('MainID', '1');
           lati = recordPos.get('Latitude'); 
           longi = recordPos.get('Longitude'); 

toujours pas de travail,recordPos est null. ERREUR TROUVÉE SUR FIREBUG

TypeError: recordPos is null
[Break On This Error]   
lati = recordPos.get('Latitude');

je pense que c'est le problème JSON magasin de sauvegarder les données à partir de PHP

Mise à JOUR 5

je peux assurer que JSON magasin de données parce que j'essaie d'imprimer tous JSON stocker des données avec ce code

MarkerStore.on('load', function(store, records) {
    for (var i = 0; i < records.length; i++) {
    console.log(records[i].get('Latitude'));
    };
});

et elle est d'avoir des données d'impression sur console

Ne serait-il pas markstore[0].Latitude pour accéder à la valeur?
j'ai modifié quelque chose, si la markstore sont multi-lignes, je veux savoir où MainID est égal à 1 et le retour de la Latitude de la Valeur,comment faire?
courte pointe. virgules - vous devriez vraiment penser à utiliser un autre ide avec vérification de la syntaxe de soutien (par exemple, netbeans) ou utiliser quelque chose comme jslint, ou que ce soit
Pourriez-vous poster le JSON que vous recevez à partir du serveur de votre dernier exemple ?
voir le code ci-dessus, il est même [{"ID":"1808","Locating":"1","MainPower":"0","Acc":"1","PowerOff":"1","Alarm":"128","Speed":"0","Direction":"293","Latitude":"5.391788482666016","Longitude":"100.29693603515625","DateTime":"2013-02-19 15:44:36","MainID":"1","IOState":"0","OilState":"0"}]

OriginalL'auteur John Walker | 2013-02-22