如果與其他帖子非常相似,我會提前道歉,但是在完成一個多星期的工作後,我無法獲得此功能。最後得到webservice返回數據,我可以看到返回的數據,但商店不會加載它。除了一種情況:當我創建一個ArrayStore並將商店設置爲loadRawData時,我在網格中看到整個響應錯誤地全部顯示在一列中;但很高興看到數據。是否有人可以看看這個,看看爲什麼我的店不加載數據和填充網格:extjs ajax呼叫商店未加載
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'connTime', type: 'string' },
{ name: 'userName', type: 'string' },
{ name: 'clientName', type: 'string' },
{ name: 'feedUrl', type: 'string' },
{ name: 'dconnTime', type: 'string' },
{ name: 'errMessage', type: 'string' },
{ name: 'ip', type: 'string' }
]
});
var myStore = Ext.create('Ext.data.Store', {
model: 'User'
});
Ext.Ajax.request({
url: 'http://dfsdfsfsfs/WCFService/WebService1.asmx/getValue',
method: 'GET',
success: function (response, options) {
var s = response.responseText;
Ext.MessageBox.alert(s, 'WOO WOO');
myStore.loadData(s);
},
failure: function (response, options) {
Ext.MessageBox.alert('FAILED MF', 'Unable to GET');
}
});
var grid = Ext.create('Ext.grid.Panel', {
store: myStore,
stateful: true,
stateId: 'stateGrid',
columns: [
{
text: 'Query',
width: 25,
sortable: false,
dataIndex: 'userName'
},
{
text: 'Count',
width: 5,
sortable: true,
renderer: change,
dataIndex: 'ip'
},
{
text: 'Last Updated',
width: 76,
sortable: true,
dataIndex: 'connTime'
},
{
text: 'Disconnect Time',
width: 10,
sortable: true,
renderer: change,
dataIndex: 'dconnTime'
},
{
text: 'Client',
width: 10,
sortable: true,
renderer: change,
dataIndex: 'clientName'
}
],
height: 350,
width: 800,
title: 'Active Queries',
renderTo: 'grid-example',
viewConfig: {
stripeRows: true
}
});
.....
我甚至試着這樣做的,並用不同的方式這一次我甚至不看Ajax響應返回:
var newStore = Ext.create('Ext.data.ArrayStore', {
model: 'User',
proxy: {
type: 'ajax',
url: 'http://dfsdfsfsfs/WCFService/WebService1.asmx/getValue',
reader: {
type: 'json',
root: 'd',
successProperty: 'success'
},
success: function (response, options) {
var s = response.responseText;
Ext.MessageBox.alert(s, 'LA LA LA');
newStore.loadData(s);
},
failure: function (response, options) {
Ext.MessageBox.alert('FAILED AGAIN', 'SUCKS');
}
}
});
編輯:
服務器響應:
{"d":{"connTime":null,"userName":"101591196589145","clientName":null,
"feedUrl":null,"dconnTime":null,"errMessage":null,"ip":null}}
「d」根目錄是由我手動添加的,並不存在於原始web響應中。我抓住它,並添加根:
{"connTime":null,"userName":"101591196589145","clientName":null,"feedUrl":null,
"dconnTime":null,"errMessage":null,"ip":null}}
編輯2:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'value', type: 'string' },
{ name: 'tag', type: 'string' }
]
});
var newStore = new Ext.data.JsonStore({
model: 'User',
proxy: {
type: 'ajax',
url: 'http://localhost:52856/WCFService/WebService1.asmx/getRules',
reader: {
type: 'json',
root: 'rules',
idProperty: 'value'
},
success: function (response, options) {
var s = response.responseText;
Ext.MessageBox.alert(s, 'LA LA LA');
newStore.loadData(s);
},
failure: function (response, options) {
Ext.MessageBox.alert('FAILED AGAIN', 'SUCKS');
}
}
});
var grid = Ext.create('Ext.grid.Panel', {
store: newStore,
stateful: true,
columns: [
這是新的JSON我想:
{"rules":[{"value":"101591196589145","tag":"16"},
{"value":"102890809752267","tag":"16"},
{"value":"107821192690513","tag":"16"}, {"value":"111517428886211","tag":"16"},
{"value":"117389718398171","tag":"16"},{"value":"12099149051","tag":"16"},
OK,我發現這可能是有問題ext.ajax.request調用。在發出請求時,商店甚至沒有定義,因此數據沒有加載。我怎麼能通過這個?
正確的方法是在存儲上聲明代理並加載存儲。你的服務器響應是什麼樣的? –