以下是一个原问题:
我有这样一个需求,就是报表类型分为日报和周报,现在我想解决的是一个周报的问题,因为周报的时间为一整周一整周的,所以在想在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]