一:统计功能
1.获得总行数起始值为1:
store.getCount();
2.某列数字求和:
store.sum('Fhtje');//参数字段名
二:载入数据
load( [Object/Function options] )//参数一个Object 键值对,或一个方法的返回对象,如果用方法返回其实质还是一个Object
//给出url地址,加载服务器返回的数据
store.load({url : 'S/xs_markets/xs_markets_fy.data.asp?act=getData&markets_zy_Fid='+ formPanel.getForm().getValues().Fid
//不给出url,会从store配置中自动获取
ds_fy.load({
params: {markets_zy_Fid:formPanel.getForm().getValues().Fid}; //load是一个read操作,参数默认附加到url,是GET提交
});
三:提交数据
store.sync()
默认是提交以下格式的数据,直接是个json对象向服务器提交,Request方法无法接收获取数据;,extjs之所以默认为这种方式提交,估计是服务器端有对应的方法直接使用该参数,俺业余写程序的吃亏啊。
网上翻了3个小时,要asp支持接收这种数据,只有像无组件上传一样用ADODB.Stream读了在提取,还有其他一些php,.net.jsp等的处理办法,乱七八糟的方法;
正确的解决办法是,配置proxy的write属性;这么简单的事情,为什么大神们要搞那么复杂,真坑!
1 var ds_fy = Ext.create('Ext.data.Store', { 2 model : 'dataModel_markets_fy', 3 idProperty : 'Fid', 4 proxy : { 5 type : 'ajax', 6 api : { 7 create : 'S/xs_markets/xs_markets_fy.data.asp?act=newData', 8 read : 'S/xs_markets/xs_markets_fy.data.asp?act=getData', 9 update : 'S/xs_markets/xs_markets_fy.data.asp?act=setData', 10 destroy : 'S/xs_markets/xs_markets_fy.data.asp?act=delData' 11 }, 12 reader : { 13 type : 'json', 14 root : 'Body' 15 }, 16 writer : { 17 encode : true, 18 type : 'json', 19 root : 'data'//服务器端直接用 Request.Form('data')接收 20 } 21 } 22 });
当调用sync()执行create任务,Response数据返回格式应按照 proxy.reader设置,至少返回该新建Reocrd主键值;如{Body:{Fid:10}}
当主键值被返回后,extjs 会自动填充sotre中该新建Record的id值;再次编辑该行,sync会执行 update任务;
当调用sync()执行delete任务,如果服务器删除失败,extjs好像没有create任务那么智能,不能恢复UI界面中被Remove的record;需要手工恢复。
如果您的实验中能自动恢复,麻烦您留个言;
in viewModel 延时加载
stores: { xsT_cashFlow: { type: 'GridStore', entityName: 'xsT_cashFlow', listeners: { 'aftersync': {fn: this.afterSync, scope: this} } } },
//grid.getStore().getProxy().getWriter().setWriteAllFields(true);