2012-01-28 31 views
1

我有一個sencha觸摸代碼,它使用Ext.Ajax.request連接到WebService。在success函數中,我希望將響應顯示在列表中或將其存儲在商店中。如何添加AjaxRequest對商店的響應或將其顯示在列表中

請幫助我如何做到這一點。以下是我的代碼。

var View = function() { 
     Ext.getBody().mask('Loading...', 'x-mask-loading', false); 
     Ext.Ajax.request({ 
      url: 'URL', 
      method: 'GET', 
      success: function(response, opts) 
      { 
        var obj = Ext.util.JSON.decode(response.responseText); 
        Ext.getCmp('content').update(response.responseText); 
      } 
     }); 
    }; 

回答

0

創建具有存儲屬性的Ext.List,

myStore = new Ext.data.Store({ 
     model: Ext.regModel('', { 

     fields: [ 
      { name: 'id', type: 'int' }, 
      { name: 'name', type: 'string'}, 
          { name: 'age', type: 'string'} 

     ] 

     }) 
    }); 

myList = new Ext.List({ 
     store: myStore, 
     itemTpl: '<div>{name}</div>' +'<div>{age}</div>' 

    }); 

然後填充的MyStore商店與Agax請求的結果。在Ajax調用的onSuccess事件應該如下,

var jsonData = Ext.util.JSON.decode(response.responseText); 
myStore.add(jsonData['myresultlist']); 
myStore.sync(); 

然後確保你從服務器端如下返回一個有效的JSON,

{ 
"myresultlist": [ 
    { 
     "id": "1", 
     "name": "anne", 
     "age": "21" 
    }, 
    { 
     "id": "2", 
     "name": "jack", 
     "age": "26" 
    }, 
    { 
     "id": "3", 
     "name": "Tom", 
     "age": "21" 
    } 
], 
"success": "true", 
"info": "My Results List!" 
} 
相關問題