在查询面板中有个时间字段,
- {
- xtype: 'datefield',
- width: '200',
- name: 'starttime',
- id:'starttime',
- fieldLabel: '开始时间',
- labelAlign: 'right',
- labelWidth: 55,
- format: 'Y-m-d h:i:s',
- selectOnFocus:true,
- editable:false,
- dateRange:{begin:'starttime',end:'endtime'},
- vtype:'dateRange',
- endDateField: 'endtime',
- anchor: '93%'
- },
在查询提交时,
- {
- xtype:'button',
- text: '查询',
- type: 'submit',
- width:50,
- disabled: false,
- handler: function() {
- var starttime = Ext.getCmp("starttime").getValue();
- alert(starttime);
- var store = Ext.getCmp('queryUsertariffGridPanel').getStore();
- var proxy = store.getProxy();
- proxy.extraParams['starttime'] = starttime;
- proxy.extraParams.start = 0;
- store.load();
- }
- }
页面效果为:
alert出来的时间值格式为:
后台action中获取到的为“2012-03-05T00:00:00”。
查了查API,发现datefield有个配置字段:
The date format string which will be submitted to the server.
The format must be valid according to Ext.Date.parse (defaults to format).
但它是支持的submit方式直接提交到后台的,而不是Ext.getCmp("").getValue();
后来加了个js函数,
- //将时间转化为 2011-08-20 00:00:00 格式
- //解决Ext4的formPanel通过grid的store查询问题 2012.2.22 jzr
- function dateFormat(value){
- if(null != value){
- return Ext.Date.format(new Date(value),'Y-m-d H:i:s');
- }else{
- return null;
- }
- }
然后datefield字段提交代码为:
- {
- xtype:'button',
- text: '查询',
- type: 'submit',
- width:50,
- disabled: false,
- handler: function() {
- var starttime = Ext.getCmp("starttime").getValue();
- var store = Ext.getCmp('queryUsertariffGridPanel').getStore();
- var proxy = store.getProxy();
- proxy.extraParams['starttime'] = dateFormat(starttime);
- proxy.extraParams.start = 0;
- store.load();
- }
- }
传到后台的值就正常啦。没有中间那个T了。