Ext 时间控件 选择时间 设置时间格式

以下是一个原问题:

我有这样一个需求,就是报表类型分为日报和周报,现在我想解决的是一个周报的问题,因为周报的时间为一整周一整周的,所以在想在datefield时间控件内设置格式为只能选择周,如
[img]http://www.iteye.com/upload/attachment/136722/ff6daf1b-ef38-3cb8-af14-e1a8ad54f5ef.jpg
[/img]

我想打开这个控件后就只有最左边的周日和最后边的周六能够选择,其余的都处于不可选状态,就是灰色的。

以下是一个新问题

上面那个原问题已经解决了,可以选择周了,但我现在想动态的去改变,有两个单选按钮,一个是周,一个是日。如果选择周,那就是上午的问题那样显示。如果选择日,就是控件初始化时的情况,两个单选按钮来控制日期控件的显示形式进行来回切换,以下是我做的方法,但这样不行。请问有办法做到这一点吗?
[code="java"]
var _form = new Ext.FormPanel({

labelWidth : 70,

frame : true,

height : 150,

width : 248,

bodyStyle : 'padding:5px 2px 0',

items : [{

xtype : 'fieldset',

title : '查询条件',

collapsible : true,

width : 232,

autoHeight : true,

items : [{

layout : 'column',

items : [{

columnWidth : 1,

height : 20,

width : 200,

text : '工作时段用能比例:',

xtype : 'label',

anchor : '100%'

}, {

columnWidth : .4,

layout : 'form',

hideLabels : true,

items : [new Ext.form.Radio({

boxLabel : '工作周',

name : 'analysis_type',

inputValue : 1,

checked : true,

listeners : {

'check' : sel_date

}

})]

}, {

columnWidth : .6,

layout : 'form',

hideLabels : true,

items : [new Ext.form.Radio({

boxLabel : '工作日',

name : 'analysis_type',

inputValue : 2,

checked : false,

listeners : {

'check' : sel_date

}

})]

}, {

columnWidth : 1,

layout : 'form',

items : [{

fieldLabel : '开始时间',

readOnly : true,

name : 'startTime',

id : 'startTime',

xtype : 'datefield',

format : 'Y-m-d',

anchor : '90%'

}]

}, {

columnWidth : 1,

layout : 'form',

items : [{

fieldLabel : '结束时间',

readOnly : true,

name : 'endTime',

id : 'endTime',

xtype : 'datefield',

format : 'Y-m-d',

anchor : '90%'

}]

}]

}]

}]

});

function sel_date(node, checked){

if(checked){

var st = _form.findById("startTime");

var et = _form.findById("endTime");

if(node.getRawValue() == 1){

st.disabledDays = [2, 3, 4, 5, 6];

et.disabledDays = [2, 3, 4, 5, 6];

}else if(node.getRawValue() == 2){

st.disabledDays = [];

et.disabledDays = [];

}

}

}

[/code]

还有改成下面这样好像也不行
[code="java"]
function sel_date(node, checked){

if(checked){

var st = _form.findById("startTime");

var et = _form.findById("endTime");

if(node.getRawValue() == 1){

st.setDisabledDays([2, 3, 4, 5, 6]);
et.setDisabledDays([2, 3, 4, 5, 6]);
}else if(node.getRawValue() == 2){

st.setDisabledDays();
et.setDisabledDays();
}

}

}
[/code]

我本地测试,可行,用

[code="java"] function sel_date(node, checked){

if(checked){

var st = _form.findById("startTime");

var et = _form.findById("endTime");

if(node.getRawValue() == 1){

st.setDisabledDays([2, 3, 4, 5, 6]);

et.setDisabledDays([2, 3, 4, 5, 6]);

}else if(node.getRawValue() == 2){
st.setDisabledDays([]);

et.setDisabledDays([]);
}

}

} [/code]

不能直接设置那个值的,因为源码如下:

[code="java"] /* Replaces any existing disabled days (by index, 0-6) with new values and refreshes the DatePicker.
* @param {Array} disabledDays An array of disabled day indexes. See the {@link #disabledDays}
* config for details on supported values.
*/
setDisabledDays : function(dd){
this.disabledDays = dd;
if(this.menu){
this.menu.picker.setDisabledDays(dd);
}
}[/code]