如何在flex中动态地使Combobox和DateField不可编辑

时间:2012-04-17 05:51:27

标签: actionscript-3 flex flex3

我正在尝试全局启用/禁用基于布尔变量的表单字段我每个记录动态设置。

此代码不适用于我的comboBox,即使我editMode = false,我仍然可以更改值。

这些字段中的任何一个都不应该是可编辑的,因为editMode = false(默认情况下和我传入的值),但是我激活日期选择器&下拉菜单。

我做错了什么?

我尝试过启用=,但它会使整个组合框背景变成暗灰色,而且我不希望颜色改变,只是不可点击。

如果我必须对组合框和日期选择器使用启用,如何更改背景颜色?似乎没有我能找到的属性。

[Bindable] public var editMode = false;

 <mx:FormItem label="District" required="true">


<mx:ComboBox id="districts" labelField="name" dataProvider="{districtCollection}"
            editable="{editMode}"
    click="onDistrictSelected(event)"/> </mx:FormItem> <mx:FormItem label= "Date><mx:DateField id="date" selectedDate="{report.startDate}" editable="{editMode}"/>

提前致谢...

2 个答案:

答案 0 :(得分:0)

mouseEnabled属性怎么样?这应该使控件不可编辑,不应更改其背景颜色。

flex文档声明可编辑仅阻止用户在组合框中键入值,它不会阻止他们使用组合框列表。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/ComboBase.html#editable

答案 1 :(得分:0)

<mx:FormItem label="District" required="true" enabled="{editMode}" disabledOverlayAlpha="0">
    <mx:ComboBox id="districts" labelField="name" dataProvider="{districtCollection}"
          click="onDistrictSelected(event)"/> 
</mx:FormItem> 
<mx:FormItem label= "Date" enabled="{editMode}" disabledOverlayAlpha="0">
     <mx:DateField id="date" selectedDate="{report.startDate}"/>
</mx:FormItem> 

尝试以上代码......这将完全解决您的问题