我需要帮助绑定自定义webapi函数返回的数据。假设我的webapi函数调用语法如下:
var filter = {<some conditions here>};
Myapp.systemcontroller.Getdata(filter).then(function(result){
--- this result contain my data and total record
});
如何将此函数绑定到存储代理,然后将其绑定到网格?
如有任何帮助,我们将不胜感激。
您可以使用不同的方式添加要存储的数据。它取决于您的数据结构(数组或对象)。
- grid.getStore.add(模型)-ref:http://docs.sencha.com/extjs/4.2.1/#/api/Ext.data.Store
- grid.getStore.loadData(data,[append])-ref:http://docs.sencha.com/extjs/4.2.1/#/api/Ext.data.Store-方法加载数据
- grid.getStore.loadRawData(data,[append])-ref:http://docs.sencha.com/extjs/4.2.1/#/api/Ext.data.Store-方法加载RawData
- 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将阻止我们调用代理