0

我需要帮助来绑定自定义 webapi 函数返回的数据。假设我的 webapi 函数调用语法如下:

var filter = {<some conditions here>};

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

如何将此功能绑定到商店代理,然后将其绑定到网格?

任何帮助将不胜感激。

4

2 回答 2

0

您可以使用不同的方式添加要存储的数据。它取决于您的数据结构(数组或对象)。

  1. grid.getStore.add(model) -ref: http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store
  2. grid.getStore.loadData(data,[append]) - 参考: http ://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-loadData
  3. grid.getStore.loadRawData(data,[append]) - 参考: http ://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-loadRawData
  4. grid.getStore.loadRecords(records,options) - 参考: http ://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-loadRecords

在您的情况下,您可以使用 loadRecords() 或 add()

于 2013-07-29T04:59:51.087 回答
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;
    },

return false 将阻止我们调用代理

于 2013-08-02T09:12:04.173 回答