Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在extjs中如何将存储数据绑定到网格_Extjs_Grid_Store - Fatal编程技术网

在extjs中如何将存储数据绑定到网格

在extjs中如何将存储数据绑定到网格,extjs,grid,store,Extjs,Grid,Store,我在extjs工作。我正在创建显示网格的视图。我已将视图创建为- Ext.define('Balaee.view.qb.qbqns.allQuestionPapers' , { extend: 'Ext.grid.Panel', alias: 'widget.paperlist', id:'paperId', store:'QbqnsStore', border:false, height:300, width:450,

我在extjs工作。我正在创建显示网格的视图。我已将视图创建为-

Ext.define('Balaee.view.qb.qbqns.allQuestionPapers' ,
        {
    extend: 'Ext.grid.Panel',
    alias: 'widget.paperlist',
    id:'paperId',
    store:'QbqnsStore',
    border:false,
    height:300,
    width:450,
    columns: [
              {
                  text: 'date',
                  width: 150,
                  dataIndex: 'creationTime'
              },
              {
                  text: 'QuestionpaperNo',
                  width: 150,
                  dataIndex: 'questionPaperNo',
              },
              {
                  text: 'Marks',
                  width:150,
                  dataIndex: 'obtainMarks'
              }
              ]
        });
这个视图是我在点击getAllPapers按钮时调用的。因此,我编写了如下代码:-

getAllPapers:function()
    {   
        var getPaperStore=Ext.create('Balaee.store.qb.QbqnsStore');
        proxy=reviewQuestionStore.getProxy();
        Ext.apply(proxy.api,{
            read:'index.php/QuestionBank/qbpaper/getUserAllQuestionPaper',
        });

        var temp2=Ext.getCmp('QbqnsResultmainId');
        temp2.removeAll();
        var papers=Ext.create('Balaee.view.qb.qbqns.allQuestionPapers');
        temp2.add(papers);

    }
在上面的函数中,我调用所需的URl来获取json-

{" Papers ":[{"questionPaperId":"29","questionPaperNo":"11","userId":"106","allocatedTime":null,"completedTime":"0000-00-00 00:00:00","createDate":"0000-00-00 00:00:00","obtainMarks":null},{"questionPaperId":"30","questionPaperNo":"11","userId":"106","allocatedTime":null,"completedTime":"0000-00-00 00:00:00","createDate":"0000-00-00 00:00:00","obtainMarks":null},{"questionPaperId":"31","questionPaperNo":"11","userId":"106","allocatedTime":null,"completedTime":"0000-00-00 00:00:00","createDate":"0000-00-00 00:00:00","obtainMarks":null}] }

现在store有了上面的json数据,我想在grid on view中提供它。但网格并没有显示任何数据。那么,如何将存储数据绑定到网格?我需要做哪些更改?

我们需要在初始化自身时将存储绑定到网格。在我的案例中,我做了如下操作:

Ext.define('App.view.activity.ListPanel', {

    extend: 'Ext.panel.Panel',
    alias: 'widget.listPanel',

    requires: [
        'Ext.data.ArrayStore'
    ],

    initComponent: function(){

        var activityStore = Ext.create('App.store.Activity');
        activityStore.load(); // this line to load is used when we use proxy in store, if we go with out proxy it is not necessary

        Ext.apply(this, {            
                items: [{
                    xtype: 'grid',                  
                    hideHeaders: true,
                    scroll: false,
                    width: 200,
                    height: 700,
                    store: activityStore,
                    stripeRows:true,
                    columnLines:true,
                    columns:[
                        {text:"Activity Name",flex:1,dataIndex:"activityName"}
                        ]                   
                }]    
        }); 

        this.callParent(arguments);
    }
});
其中App.store.Activity定义为(无代理):

带有代理:

Ext.define('App.store.Activity', {
    extend: 'Ext.data.Store',
    id: 'transactionSummaryStore',
    model: 'App.model.Activity',
    proxy: {
        type: 'ajax',
        url: 'getActivities.htm',
        reader: {
            type: 'json',
            root: 'results'
        } 
    } 
});
其中,模型定义为:

Ext.define('App.model.Activity', {
    extend: 'Ext.data.Model',
    fields : [ {
        name : 'activityName'
    }, {
        name : 'createdBy'
    }, {
        name : 'scheduleTime'
    } ]
});
Ext.define('App.model.Activity', {
    extend: 'Ext.data.Model',
    fields : [ {
        name : 'activityName'
    }, {
        name : 'createdBy'
    }, {
        name : 'scheduleTime'
    } ]
});