我有一個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