我有一个DataGrid连接到后端,一个字段/列作为状态。 DG使用CheckBox HeaderRenderer和itemRenderer。当状态为“失败”时,我想显示复选框以及什么时候是其他任何东西,而不是显示它(或者作为折中,禁用它)。可见的属性没有任何影响(我不知道为什么),因为复选框总是显示,并且enabled = false只是灰色,但仍允许headerRenderer检查&取消选中(再次,不知道为什么)。任何想法为什么发生这种情况?代码非常简单:DataGrid CheckBox Itemerenderer看起来像一个bug ...像一个bug的行为
的itemRenderer -
<?xml version="1.0" encoding="utf-8"?>
<mx:CheckBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import com.fidelity.ORWS.view.requests.RequestStatus;
import mx.controls.Alert;
override public function set data(value:Object):void
{
super.data = value;
this.selected = false;
if(data.status == 'SUCCESS' || data.status == 'PROCESSING')
{ this.enabled = false; }
}
]]>
</mx:Script>
</mx:CheckBox>
的HeaderRenderer -
<?xml version="1.0" encoding="utf-8"?>
<mx:CheckBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.DataGrid;
override protected function clickHandler(event:MouseEvent):void
{
super.clickHandler(event);
var dg:DataGrid = this.owner as DataGrid;
var dp:ArrayCollection = dg.dataProvider as ArrayCollection;
var cb:requestcheckboxRenderer;
for (var i:int=0;i<dp.source.length;i++)
{
cb = dg.indexToItemRenderer(i) as requestcheckboxRenderer;
cb.selected = (selected) ? true : false;
}
}
]]>
</mx:Script>
</mx:CheckBox>
谢谢 - 最后确实得到它的工作。基本上将复选框包装在容器中,该容器允许复选框上的ID并且能够隐藏/显示。无论如何,这是首选的解决方案,所以启用/禁用不再是一个问题。 再次感谢... – dude22 2010-03-02 18:47:13