我正在尝试从dataprovider(xml文件)设置复选框的选定值。
<mx:DataGridColumn width="75" headerText="show/hide" dataField="@hidden">
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox selected="{data.@hidden}" />
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
我认为我遇到的问题是,它没有将html中的属性识别为boolean“hidden =”false“或hidden =”true“。我可以获取值,但是如何让它识别值不是字符串?
答案 0 :(得分:0)
我认为你可以将它包装在{Boolean(data。@ hidden)}
类型中如果包装它不起作用,你可以声明一个布尔值
var myBool:Boolean = new Boolean();
然后做出决定:
myBool = (data.@hidden=="true");
修改强> 我的代码不多,所以我无法对此进行测试,但我认为它应该可行。
使用此复选框创建一个MXML组件,对于我的示例,它将被称为ItemRendCheckBox:
<?xml version="1.0" encoding="utf-8"?>
<mx:CheckBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
override public function set data( value:Object ):void{
super.data = value;
this.selected = Boolean(data);
}
]]>
</mx:Script>
</mx:CheckBox>
然后在您的dataGrid XML中执行以下操作:
<mx:DataGridColumn width="75" headerText="show/hide" dataField="@hidden">
<mx:itemRenderer>
<mx:Component>
<mx:ItemRendCheckBox/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
答案 1 :(得分:0)
我遇到了类似的问题,为了解决这个问题,只需将此代码段放入大括号中即可:
('false' == data.@hidden) ? false : true
基本上你将从数据中获得的值。@ hidden不是布尔值,而是字符串,因此使用引号围绕false。