我想显示加载表单数据从数据库和显示该数据到网格。但是,在执行该任务时,我面临一个问题,即,我无法将JSON响应获取到网格中,只有空行添加到网格中。
这是我的网格代码:Ext.define('test.view.user.PredictabilityGrid' ,{
extend: 'Ext.grid.Panel',
alias: 'widget.predictabilitygrid',
title: 'Predictability Grid',
store:'UserGrid',
height: 200,
width: 400,
columns: [
{ header: 'SAP ID',
dataIndex:'userId'
},
{
header: 'Name',
dataIndex: 'userName'
//id: 'gridName'
},
{
header: 'Status',
dataIndex: 'status'
},
{
header: 'EDC Name',
dataIndex: 'edcName'
},
{
header: 'BHR',
dataIndex: 'businessHr'
},
{
header: 'Level',
dataIndex: 'level'
},
{
header: 'Designation',
dataIndex: 'designation'
},
{
header: 'Resign Date',
dataIndex: 'dor'
},
{
header: 'DOJ',
dataIndex: 'doj'
},
{
header: 'Manager',
dataIndex: 'directManager'
},
{
header: 'Indirect Manager',
dataIndex: 'indirectManager'
},
{
header: 'Quarter',
dataIndex: 'quarter'
},
{
header: 'Year',
dataIndex: 'year'
},
{
header: 'Predictability',
dataIndex: 'predict'
},
{
header: 'Primary Reason',
dataIndex: 'primary'
},
{
header: 'Secondary Reason',
dataIndex: 'secondary'
},
{
header: 'Probable Attrition Category',
dataIndex: 'attrition'
},
{
header: 'Criticality',
dataIndex: 'criticality'
},
{
header: 'Action Planned By Manager(1)',
dataIndex: 'action1'
},
{
header: 'Action Planned By Manager(2)',
dataIndex: 'action2'
},
{
header: 'Details',
dataIndex: 'details'
},
{
header: 'Dependency',
dataIndex: 'dependency'
},
{
header: 'Remarks',
dataIndex: 'remarks'
}],
dockedItems:[{
xtype: 'toolbar',
docked:'top',
height:50,
items: [{
text: 'HrApps',
icon: 'hrapps.jpg'
},{
xtype: 'tbfill'
},{
itemId:'btnHomeGrid',
text: 'Home',
icon:'home.jpg'
},{
itemId:'btnChangeGrid',
text: 'ChangePassword',
icon:'changepass.jpg'
},{
itemId:'btnLogoutGrid',
text:'Logout',
icon:'Logout.jpg'
}]
}]
});
这是我的网格存储:
Ext.define('test.store.UserGrid', {
extend: 'Ext.data.Store',
storeId:'UserGrid',
autoLoad: false,
alias : 'widget.UserGrid',
itemId:'UserGrid',
fields: ['userName','userId',
'status',
'edcName',
'businessHr',
'level',
'doj',
'designation',
'directManager',
'indirectManager',
'quarter',
'year',
'dor',
'predict',
'primary',
'secondary',
'attrition',
'criticality',
'action1',
'action2',
'details',
'dependency',
'remarks'
]
});
这是我的extjs控制器代码显示数据到网格:
在下面的代码中,我将数据存储到表单中,并将其返回并显示到网格中。
onSavePredict:function(button)
{
var predictabilityDetails = this.getPredictabilityForm().getForm().getValues();
var form = button.up('predictability').getForm();
Ext.Ajax.request({
params : {
predictData : Ext.encode(predictabilityDetails)
},
url: 'test/createPredictability',
success: function(response, options){
var jsonResponse = Ext.decode(response.responseText);
panel = button.up('parentPage');
panel.getLayout().setActiveItem(5);
form.reset();
Ext.Ajax.request({
params : {
grid_data : Ext.encode(predictabilityDetails)
},
url: 'test/createGrid',
success: function(response, options,record){
var jsonResponse = Ext.decode(response.responseText);
//this.getView().get(predictabilitygrid).getStore();
//alert(jsonResponse.predict.get().userName);
Ext.getStore('UserGrid').load();
Ext.getStore('UserGrid').add(0,jsonResponse.predict);
/*userStore.insert(0, predictabilityDetails);
predictabilityDetails.loadRecord(record);
predictabilityDetails.updateRecord();*/
}
});
}
});
这是我的JSON响应:
{"预测":[{"预测":"适度"、"主要":"aaa级"、"二级":"ccc"、"消耗战":"后悔"临界":"关键"、"action1":"永久"、"action2":"好","actionstatus":"等待","细节":"是"依赖":"sa"、"备注":"dsd"、"用户名":"supriya"、"用户名":"7164921","状态":"不活跃"、"edcName":"HDC"、"businessHr":"苏雷什","水平":"L1","司法部":"03/05/2015"、"名称":"实习生","directManager":"bloom"indirectManager":"amith"、"年":"2015","季":"q1"、"金龟子":"}]}
如何使数据从数据库动态显示在网格上?
首先您应该删除"alias: "小部件。UserGrid'"one_answers"itemId:'UserGrid'"从你的商店。没道理。创建一个模型来绑定到您的商店,并在您的商店上配置一个ajax代理。然后调用store.load()