1

加载以下页面时出现上述错误:

<link rel="stylesheet" type="text/css" href="/extjs-crud/ext-3.4.1/resources/css/ext-all.css" />
<!-- Row Editor plugin css -->
<link rel="stylesheet" type="text/css" href="/extjs-crud/ext-3.4.1/examples/shared/examples.css" />     
<link rel="stylesheet" type="text/css" href="/extjs-crud/ext-3.4.1/examples/ux/css/RowEditor.css" />   
<script src="/extjs-crud/ext-3.4.1/adapter/ext/ext-base.js"></script> 
    <script type="text/javascript" src="/extjs-crud/ext-3.4.1/ext-all-debug.js"></script>

    <!-- Row Editor plugin js -->    
    <script src="/extjs-crud/ext-3.4.1/examples/ux/RowEditor.js"></script> 
<script type="text/javascript">

    //Record definition
    var Contact = Ext.data.Record.create(
    [ {name: 'id'}, 
    {     name: 'name',     type: 'string'}, 
    {     name: 'phone',     type: 'string'}, 
    {     name: 'email',     type: 'string'}, 
    {     name: 'birthday',     type: 'date',     dateFormat: 'm/d/Y'}
    ]);
    //Proxy definition
    var proxy = new Ext.data.HttpProxy({
         api: { 
         read : 'contact/view.action',
         create : 'contact/create.action',
         update: 'contact/update.action'}
         });
    //reader definition
    var reader = new Ext.data.JsonReader({
         totalProperty: 'total',
         successProperty: 'success',
         idProperty: 'id',
         root: 'data',
         messageProperty: 'message'
         }, Contact); 
    // The new DataWriter component.    
    var writer = new Ext.data.JsonWriter({        encode: true,        writeAllFields: false   });
    // Typical Store collecting the Proxy, Reader and Writer together.
        var store = new Ext.data.Store({ 
        id: 'user',
        proxy: proxy,
        reader: reader,
        writer: writer,  // <-- plug a DataWriter into the store just as you would a Reader
        autoSave: false // <-- false would delay executing create, update, destroy requests until specifically told to do so with some [save] buton.
        }); 
        //grid definition
        var editor = new Ext.ux.grid.RowEditor({     saveText: 'Update'});  
        // create grid 
        var grid = new Ext.grid.GridPanel({
             store: store,
             columns: [
             {header: "NAME",          width: 170,          sortable: true,
             dataIndex: 'name',          editor: {             xtype: 'textfield',             allowBlank: false        }},
             {header: "PHONE #",          width: 150,          sortable: true,
             dataIndex: 'phone',          editor: {              xtype: 'textfield',              allowBlank: false        }},
             {header: "EMAIL",          width: 150,          sortable: true,
             dataIndex: 'email',          editor: {             xtype: 'textfield',             allowBlank: false        }},
             {header: "BIRTHDAY",          width: 100,          sortable: true,
             dataIndex: 'birthday',          renderer: Ext.util.Format.dateRenderer('m/d/Y'),
             editor: new Ext.form.DateField ({             allowBlank: false,             format: 'm/d/Y',             maxValue: (new Date())         })}
             ],
             plugins: [editor],     title: 'My Contacts',     height: 300,     width:610,
             frame:true,
             tbar: [{         iconCls: 'icon-user-add',         text: 'Add Contact',
             handler: function(){
             var e = new Contact({
             name: 'New Guy',
             phone: '(000) 000-0000',
             email: 'new@loianetest.com',
             birthday: '01/01/2000'            });
             editor.stopEditing();
             store.insert(0, e);
             grid.getView().refresh();
             grid.getSelectionModel().selectRow(0);
             editor.startEditing(0);
             }
             },
             {         iconCls: 'icon-user-delete',         text: 'Remove Contact',
             handler: function(){
             editor.stopEditing();
             var s = grid.getSelectionModel().getSelections();
             for(var i = 0, r; r = s[i]; i++){
             store.remove(r);
             }
             } 
             },
             {         iconCls: 'icon-user-save',         text: 'Save All Modifications',
             handler: function(){
             store.save();
             }
             }]
             }
             ); 
        var stateForm = new Ext.FormPanel({
        frame:true,
        title: 'Grid Example',
        bodyStyle:'padding:5px 5px 0',
        width: 250,
        labelAlign: 'top',
        layout: 'form',
        items: [grid]
        });


    stateForm.render(document.body);

将不胜感激任何帮助进一步挖掘。

4

1 回答 1

0

您必须在以下位置执行代码:

Еxt.onReady(function(){
     ....
});
于 2013-10-04T16:10:06.377 回答