2011-11-13 18 views
0

現在、Ext JS 3.1.0でEditorGridPanelを教えています。私は都市のリストを表示するグリッドを作成することができました。ただし、データベースに新しいレコードを追加しようとすると問題が発生します。私はボタンが何も起こりませんし、Firebugのがエラーを示して「都市追加」をクリックすると:EditorGridPanelに新しいレコードを追加できません

Uncaught ReferenceError: newCity is not defined 
Ext.grid.EditorGridPanel.tbar.handlereg02.html: 96 
Ext.Button.Ext.extend.onClickext-all-debug.js: 27083 
h 

をこれが私のコードです:

Ext.onReady(function(){ 

//===== Data Store ================================================== (2) 
var store = new Ext.data.Store({ 
       url: 'city_for_eg01.php', 
       reader: new Ext.data.JsonReader({ 
       root:'rows', 
       id:'zip' 
      }, [ 
       'zip', 
       'city' 
      ]), 
      api: { 
        create : 'city_for_eg01.php?action=create', 
        read : 'city_for_eg01.php?action=read', 
        update: 'city_for_eg01.php?action=update', 
        destroy: 'city_for_eg01.php?action=destroy' 
       }, 
      writer: new Ext.data.JsonWriter({ 
       writeAllFields: true 
       }), 
      autoSave: false, 
     }); 
store.load(); 
//=================================================================== end (2) 

var editor = new Ext.form.TextField(); 

var grid = new Ext.grid.EditorGridPanel({ 
     renderTo: document.body, 
     frame:true, 
     title: 'City', 
     height:200, 
     width:520, 
     clickstoEdit: 1, 
     store: store, 
     columns: [ 
        {header: "ZIP", dataIndex: 'zip', editor: editor}, 
        {header: "CITY", dataIndex: 'city', editor: editor}, 
        ], 
     listeners: { 
        afteredit: function(e){e.record.commit();} 
     }, 
     tbar: [{ 
      text: 'Add City', 
      icon: 'images/table_add.png', 
      cls: 'x-btn-text-icon', 
      handler: function() { 
         Ext.Ajax.request({ 
           url: 'city-update.php', 
           params: { 
              action: 'create', 
              zip: 'zip' 
             }, 
           success: function(resp,opt) { 
              grid.getStore().insert(0, 
              new newCity{ 
                zip: 'New Zip', 
                city: 'New City'  
                }) 
             ); 
              grid.startEditing(0,0); 
          }, 
           failure: function(resp,opt) { 
                Ext.Msg.alert('Error','Unable to add city'); 
                } 
        }); 
       } 
     }]    
    }); 
}); 

答えて

1

定義されたnewCity機能がないためです。

あなたはそれをして動作させることができるはずです。

new store.recordType(/* values */) 

recordTypeはその店のための新しいRecordのコンストラクタを保持しています。

関連する問題