2013-07-27 89 views
0

我需要幫助綁定自定義webapi函數返回的數據。說我的WebAPI函數調用的語法是象下面這樣:自定義webapi函數綁定來存儲extjs網格

var filter = {<some conditions here>}; 

Myapp.systemcontroller.Getdata(filter).then(function(result){ 
    --- this result contain my data and total record 
    }); 

我如何可以綁定這個函數到店裏代理,然後將其綁定到一個網格?

任何幫助將不勝感激。

回答

0

您可以使用不同的方式添加要存儲的數據。它依賴於你的數據結構(數組或對象)。

  1. grid.getStore.add(模型)-ref: http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store
  2. grid.getStore.loadData(數據,[附加]) - REF: http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-loadData
  3. grid.getStore.loadRawData(數據, [附加]) - REF: http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-loadRawData
  4. grid.getStore.loadRecords(記錄選項) - REF: http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-loadRecords

你的情況,你可以使用loadRecords()或add()

+0

親愛的哈里,謝謝我可以通過使用add或loaddata將它綁定到商店它正在工作...但我需要通過代理綁定此功能,因爲我有分頁工具欄與網格相關聯..如果我使用此顯示數據的方式,當我們點擊分頁工具欄時刷新它會拋出錯誤,說明您正在使用沒有url的服務器代理 –

0

問題已經修復。我沒有在我的商店中使用任何代理..我使用上述api來檢索數據並將其綁定到使用loadData方法存儲。然後,我將我的工具欄的totalProperty以及

- 負載

Myapp.systemcontroller.Getdata(f).then(function (data) { 
      gridstore.loadData(data.Items); 
      gridstore.totalCount = data.TotalNumber; 
      var pgTb = Ext.getCmp('DataListPgTb'); 
      pgTb.onLoad(); 
      me.getLogList().setLoading(false); 
     }); 

然後在toolbarchange事件

toolBarChange: function (tbar, pageData, eOpts) { 
     var pageSize = PrIns.getApplication().Configuration.PageSize; 
     var me = this; 
     me.getLogList().setLoading(true); 
     var f = Ext.create(MyApp.webapi.filter.LogFilter', { pageIndex: pageData, pageSize: pageSize, orderBy: 'Ascending' }); 
     var gridstore = this.getLogList().getStore(); 
     Myapp.systemcontroller.Getdata(f).then(function (data) { 
      gridstore.loadData(data.Items); 
      gridstore.totalCount = data.TotalNumber; 
      gridstore.currentPage = pageData;  
      var pgTb = Ext.getCmp('DataListPgTb'); 
      pgTb.onLoad(); 
      me.getLogList().setLoading(false); 
     }); 
     return false; 
    }, 

返回false將阻止我們調用代理