在extjs中如何将存储数据绑定到网格
我在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,
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'
} ]
});