Griglia archivio di config getta “Uncaught TypeError: Impossibile leggere la proprietà ‘tamponata’ undefined”

Ho la forma e la griglia. l’utente deve inserire i dati nei campi modulo quindi visualizzare i record correlati nella griglia.

Vorrei implementare un form di ricerca, e.g: utente dovrà digitare il nome e il sesso dello studente,
quindi si ottiene una griglia di tutti gli studenti che hanno lo stesso nome e sesso.

Quindi, utilizzare Ajax per inviare il modulo di campi di valore per il PHP, e quindi creare un json_encode, che saranno utilizzati nella griglia store.

Io non sono veramente sicuro se la mia idea è buona. Ma io non ho trovato altro modo per farlo.

Il problema è che c’è un errore nel mio negozio, ma non riuscivo a capire di cosa si tratta. Ricevo questo errore:
Uncaught TypeError: Cannot read property 'buffered' of undefined

Il Mio Punto Di Vista:

{
  xtype: 'panel',
  layout: "fit",
  id: 'searchResult',
  flex: 7,
  title: '<div style="text-align:center;"/>SearchResultGrid</div>',
  items: [{
    xtype: 'gridpanel',
    store: 'advSearchStore',
    id: 'AdvSearch-grid',
    columns: [{
        xtype: 'gridcolumn',
        dataIndex: 'name',
        align: 'right',
        text: 'name'
      }, {
        xtype: 'gridcolumn',
        dataIndex: 'gender',
        align: 'right',
        text: 'gender'
      }
    ],
    viewConfig: {
      id: 'Arr',
      emptyText: 'noResult'
    },
    requires: ['MyApp.PrintSave_toolbar'],
    dockedItems: [{
      xtype: 'PrintSave_tb',
      dock: 'bottom',
    }]
  }]
}

Il Mio Controller:

.
.
.
xmlhttp.open("GET","AdvSearch.php?search_name="+search_name,true);
xmlhttp.send(null); 

Il mio script PHP:

if (!$con) {
    throw new Exception("Error in connection to DB");
}

$query ="SELECT name, gender FROM students  WHERE name ILIKE '%$search_name%' ";
$result = pg_query($query); 

while ($row = pg_fetch_array($result)) {
   $Arr[] = array('name' => $row[0], 'gender' => $row[1]);
}

$searchResult_list = array();
$searchResult_list['success'] = true;
$searchResult_list['Arr'] = $Arr;

$searchResult_list['totalCount'] = count( $searchResult_list['Arr'] );

echo json_encode($searchResult_list); 

if (!$result) 
    die("Error in query: " . pg_last_error());

pg_close($con);

Il Mio Negozio, Modello:

Ext.define('AdvSearchPost', {
  extend: 'Ext.data.Model',
  proxy: {
    type: 'ajax',
    url: 'AdvSearch.php',
    reader: {
      type: 'json',
      root: 'Arr',
      totalProperty: 'totalCount'
    }
  },
  fields: [{
      name: 'name'
    }, {
      name: 'type_and_cargo'
    }
  ]
});
advSearchStore = Ext.create('Ext.data.Store', {
  pageSize: 10,
  model: 'AdvSearchPost'
});
InformationsquelleAutor Shadin | 2012-11-27



2 Replies
  1. 7

    Beh, è solo un errore di battitura di il nome del tuo negozio.

    L’errore Uncaught TypeError: Cannot read property 'buffered' of undefinedindica solo che il negozio potrebbe non essere vincolato. Può essere un po ‘ fuorviante.

    Provare la griglia con

    store: advSearchPost

    o

    store: Ext.StoreMgr.lookup('AdvSearchPost') //if in any form a controller takes care about your store 

    e funzionerà.

    Modifica

    Credo che non hai alcun controller, quindi vi consiglio di creare il tuo negozio come questo

    Ext.create('Ext.data.Store', {
       pageSize: 10,
       model: 'AdvSearchPost',
       storeId: 'AdvSearchPost'
    });

    Che vi permetterà di ricevere il negozio dalla StoreManager da tutto il mondo (dopo che è stato creato). Che consentirà anche l’ultima istruzione di lavoro, senza alcun controller.

    • Grazie mille! l’errore è sparito, ma ancora il risultato non indicato nella griglia anche è tornato con successo in firebug. Che cosa suggerisce?
    • Siete i benvenuti 🙂 Beh, questo è difficile da dire senza JSON rispondere dal tuo server. Ma credo dipenda dalla JSON restituito e il lettore di configurazione. Devi controllare se il tuo JSON è valied e il lettore è configurato correttamente (per un totale di proprietà, radice di proprietà, proprietà id, e così via)
    • ok controllerò che. Grazie Mille 🙂
    • grazie amico, ho incontrato lo stesso problema e lo risolto da voi un suggerimento.
    • Sei il benvenuto! Felice se ti ha aiutato 😉
  2. 1

    Anche se si chiama come questo..
    store: Ext.StoreMgr.lookup('bla bla bla') non gettare alcun errore nella console.

    Sostituire negozio parametro con storeId e quindi assegnare il tuo negozio reale che si connette al tuo negozio reale. storeId:advSearchPost

Lascia un commento