商店中的功能和故障功能-ExtJS

问题描述 投票:0回答:1

var request = Ext.Ajax.request({ url: 'MCApp', jsonData: searchquery, params: { start: 0, limit: itemsPerPage }, success: function(response) { mainresponse = response.responseText; if (mainresponse.length == 0) { alert('No results returned'); return; } var decoded = Ext.decode(mainresponse); for (var i = 0; i < decoded.elements.length; i++) { // loop over decoded data var element = decoded.elements[i].element; var model = {}; for (var x = 0; x < element.attributes.length; x++) { // loop over attributes var attribute = element.attributes[x]; model[attribute.attrname] = attribute.attrvalue; // mapping element names & attributes } newstore.add(model); // implicitly cast data as Model models[i] = model; } newstore.loadRawData(models); }, failure: function() { alert('Search Failed: Could not reach the server') } });

我现在已经重新创建了我
request

中的
store
babove。我需要做的是添加这些成功和失败功能。

var store = Ext.create('Ext.data.Store', { storeId: 'resultsetstore', autoLoad: false, pageSize: itemsPerPage, fields: [ { name: 'id', type: 'auto' }, { name: 'name', type: 'auto' }, { name: 'description', type: 'auto' } ], proxy: { type: 'ajaxwithpayload', //customized proxy to read "jsonData" url: 'MCApp', jsonData: searchquery, reader: { type: 'json', root: 'elements' } success: { /* success functions */ }, failure: { /* failure functions */ } } });

我的反应是:
{
   "elements":[
      {
         "element":{
            "name":"Element Name", 
            "id":"Element ID",
            "attributes":[
               {
                  "attrname":"id",
                  "attrvalue":"This is the ID"
               },
               {
                  "attrname":"name",
                  "attrvalue":"This is the name"
               },
               //etc.

1)有什么办法可以在我的商店中重新创建这些功能?
2)是将我的响应解码是将我的响应加载到商店中的最佳方法吗?

eDit

我加载商店时使用回调函数:

store.load({ params: { start: 0, limit: itemsPerPage }, callback: function(options, success, response, records) { if (success) { alert(response.responseText); } } });

,无论如何,我的警报中得到了一个,它告诉我加载了0个记录。但是,当我在Firebug中查看我的回应时,我看到我的JSON字符串很好地回来了。

在商店中处理

您可以在代理上聆听

Exception-Event
捕获所有商店错误。
为了在商店中的成功
载荷 - 事件

undefined

extjs
1个回答
9
投票

var store = Ext.create('Ext.data.Store', { storeId: 'resultsetstore', autoLoad: false, pageSize: itemsPerPage, fields: [ { name: 'id', type: 'auto' }, { name: 'name', type: 'auto' }, { name: 'description', type: 'auto' } ], listeners: { load: function(store, records, successful, eOpts) { if (successfull) { alert('success'); } } }, proxy: { type: 'ajaxwithpayload', //customized proxy to read "jsonData" url: 'MCApp', jsonData: searchquery, reader: { type: 'json', root: 'elements' }, listeners: { exception: function(proxy, response, operation, eOpts) { alert('exception'); } } } }); 或使用Sync(用于删除,修改,...)

store.load({ callback: function(records, operation, success) { // ... } });

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.