自定义webapi函数绑定以存储extjs网格



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

var filter = {<some conditions here>};
Myapp.systemcontroller.Getdata(filter).then(function(result){
   --- this result contain my data and total record 
   });

如何将此函数绑定到存储代理,然后将其绑定到网格?

如有任何帮助,我们将不胜感激。

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

  1. grid.getStore.add(模型)-ref:http://docs.sencha.com/extjs/4.2.1/#/api/Ext.data.Store
  2. grid.getStore.loadData(data,[append])-ref:http://docs.sencha.com/extjs/4.2.1/#/api/Ext.data.Store-方法加载数据
  3. grid.getStore.loadRawData(data,[append])-ref:http://docs.sencha.com/extjs/4.2.1/#/api/Ext.data.Store-方法加载RawData
  4. grid.getStore.loadRecords(记录,选项)-ref:http://docs.sencha.com/extjs/4.2.1/#/api/Ext.data.Store-方法加载记录

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

问题已经解决。我没有在我的商店中使用任何代理。。我使用上面的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: 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将阻止我们调用代理

最新更新