ExtJS中按年月查询的问题

[img][/img]{
xtype : 'datefield',
fieldLabel : '月份',
format : "Y-m",
name : 'yueFen',
operator : '='}]
}
上述作为查询条件,实际传递的值为Y-m-d,要怎么样才能只传递年和月啊?

你是通过Ajax传到后台的吗,我就不信你前边用一个字符串"2010-06"当作参数传到后台,后台用个String型的进行接收,能变成"2010-06-22"

我想前后台还没有这么智能能想到你大脑里想什么

你用的是 xtype : 'datefield', 是日期型的,格式都是选择 年/月/日三项的

你可以改写一下,或者去网上搜一个年月的控件

你是用的getValue()方法取的值, 还是用form的submit(或doAction),还是通过dom取的值?

getValue()取出的值为Date类型,如果想传串的话,就得进行一次格式化。
后两者的话应该直接传过去就是你给datefield的format配置那样格式的数据。

getValue().format("Y-m");
或者是 el.dom.value
都可以得到你想要的结果

或者给datefield加一个额外的方法
xtype : 'datefield',
fieldLabel : '月份',
format : "Y-m",
name : 'yueFen',
operator : '=',
value : function(){
return Ext.form.DateField.superclass.getValue.call(this);
//或者是 return this.getValue().format(this.format);
}

也可以把value改成getValue覆盖类中定义的方法

不知道你是怎么写的,反正在我机器上用2.2和3.0测试,以下语句都可以得出正确的值

var value = formpanel.getForm().findField("date").getValue();
alert(formpanel.getForm().getValues().date);
alert(formpanel.getForm().findField("date").el.dom.value);
alert(value.format("Y-m"))

做新增保存时

也就是说你ext传到后台是对的,只是oracle默认加了个日期,是吗?

你这个是日期型的,有日期是对的

你后台用什么数据类型接收的