2012-04-24 5 views
0

をグリッドでJSONデータを示していない。私ExtJSのグリッドは、ローカルホストから

[{"stu_name": "Aatir"}, {"stu_name": "Mohsin"}, {"stu_name": "Anil"}, {"stu_name": "Anwar"}, {"stu_name": "Amir"}] 

は今、私はこのデータを使用したいと望みますExtJSのグリッドに表示する

私ExtJSのファイルは以下の通りです:

hmak.html

<html> 
<head> 
    <title>Account Manager</title> 

    <link rel="stylesheet" type="text/css" href="{{MEDIA_URL}}extjs/resources/css/ext-all.css"> 
    <script type="text/javascript" src="{{MEDIA_URL}}extjs/ext-all-debug.js"></script> 
    <script type="text/javascript" src="{{MEDIA_URL}}extjs/ext-debug.js"></script> 
    <script type="text/javascript" src="{{MEDIA_URL}}app.js"></script> 
</head> 
<body> 
</body> 
</html> 

app.js

Ext.Loader.setConfig({ enabled: true }); 
Ext.application({ 
    requires : [ 'Ext.container.Viewport'], 

    controllers: ['Users'], 

    name: 'AM', 
    appFolder: 'media/app', 

    launch: function() { 
     Ext.create('Ext.container.Viewport', { 
      layout: 'fit', 
      items: [ 
       { 
        xtype: 'userlist' 
       } 
      ] 
     }); 
    } 
}); 

Users.js(コントローラ)

Ext.define('AM.controller.Users', { 
    extend: 'Ext.app.Controller', 

    stores: ['Users'], 
    models: ['User'], 

    views: ['user.List', 'user.Edit'], 

    init: function() { 
     this.control({ 
      'viewport > userlist': { 
       itemdblclick: this.editUser 
      }, 
      'useredit button[action=save]': { 
       click: this.updateUser 
      }   
     }); 
    }, 

    updateUser: function(button) { 
    var win = button.up('window'), 
     form = win.down('form'), 
     record = form.getRecord(), 
     values = form.getValues(); 

    record.set(values); 
    win.close(); 
    this.getUsersStore().sync(); 
    }, 

    editUser: function(grid, record) { 
     var view = Ext.widget('useredit'); 

     view.down('form').loadRecord(record); 
    } 
}); 

List.js(ビュー)

Ext.define('AM.view.user.List' ,{ 
    extend: 'Ext.grid.Panel', 
    alias : 'widget.userlist', 

    store: 'Users', 

    title : 'All Users', 

    initComponent: function() { 
     this.store = { 
      fields: ["stu_name"] 
     }; 

     this.columns = [ 
      {header: "stu_name", dataIndex: "stu_name", flex: 1} 
     ]; 

     this.callParent(arguments); 
    } 

}); 

Edit.js(ビュー)

Ext.define('AM.view.user.Edit', { 
    extend: 'Ext.window.Window', 
    alias : 'widget.useredit', 

    title : 'Edit User', 
    layout: 'fit', 
    autoShow: true, 

    initComponent: function() { 
     this.items = [ 
      { 
       xtype: 'form', 
       items: [ 
        { 
         xtype: 'textfield', 
         name : "stu_name", 
         fieldLabel: "stu_name" 
        } 
       ] 
      } 
     ]; 

     this.buttons = [ 
      { 
       text: 'Save', 
       action: 'save' 
      }, 
      { 
       text: 'Cancel', 
       scope: this, 
       handler: this.close 
      } 
     ]; 

     this.callParent(arguments); 
    } 
}); 

Users.js(店舗)

Ext.define('AM.store.Users', { 
    extend: 'Ext.data.Store', 
    model: 'AM.model.User', 

    autoLoad: true, 

    proxy: { 
     type: 'ajax', 
     api: { 
      read: 'http://127.0.0.1:8000/task/' 
     }, 
     reader: { 
      type: 'json', 
      root: 'users', 
      successProperty: 'success' 
     } 
    } 
}); 

user.jsの(モデル)

Ext.define('AM.model.User', { 
    extend: 'Ext.data.Model', 

    fields: ["stu_name"] 
}); 

viewport.js

210とは、私のpythonで私が書いた:

順番にhmak.htmlとローカルホストから/タスクそれを取得、データがJSONである(私が代理で定義しました)に行く
def homePage(request): 
    StuInfo.objects.all().values_list() 
    return render_to_response('hmak.html', context_instance=RequestContext(request)) 

私がグリッドが表示されない理由について教えてください。

グリッドが表示されない理由は何ですか? それだけでヘッダーが表示されます...

誰でもこの問題をお手伝いできますか?これが問題の原因であるかもしれない

答えて

0

initComponent機能で
this.store = { 
     fields: ["stu_name"] 
}; 

、あなたはgridpanelクラス定義で定義されたストアを上書きしています。あなたはそれを削除しようとしましたか?

+0

今まで何も起こっていません...... –

+0

私はこの問題を解決しました。 –

1

私はあなたが

Ext.define('AM.view.Viewport', { 
    extend: 'Ext.container.Viewport' 
}); 

ともinitComponent関数の内部で呼び出すストアを削除するに

Ext.define('SI.view.Viewport', { 
    extend: 'Ext.container.Viewport' 
}); 

を変更することがあると思います。

関連する問題