Мне нужно разработать сетку данных, в первом столбце я должен использовать значок закрытого замка. когда я щелкаю строку в сетке данных, значок выбранных строк должен измениться на значок открытого замка. как я могу выполнить эту задачу в гибком 3. пожалуйста, помогите мне.
Условное изменение значков в строках таблицы данных с помощью щелчка по элементу
comment
Я понятия не имел, как менять значки, щелкая элементы сетки данных. Но я получил ответ на свой вопрос, используя метод набора данных в рендерере элементов. :)
- person Santhosh Nayak   schedule 25.07.2011
comment
Тогда обязательно ответьте на свой вопрос и выберите его в качестве ответа.
- person JeffryHouser   schedule 25.07.2011
comment
Я опубликовал официальный ответ, в котором подробно описаны два разных способа обновления средства визуализации при изменении данных.
- person JeffryHouser   schedule 26.07.2011
comment
Спасибо, что ответили .. :)
- person Santhosh Nayak   schedule 26.07.2011
Ответы (2)
Есть два варианта обновления itemRenderer при изменении данных.
- Первый - переопределить метод набора данных; как вы сказали, это работает для вас.
- Второй - прослушивание dataChange и выполняйте обновления в этом обработчике событий.
person
JeffryHouser
schedule
26.07.2011
это моя кодировка для выполнения вышеуказанной задачи: когда блокировка истинна, изображение блокировки будет отображаться, когда будет отображаться ложное изображение пера. При щелчке по элементу блокировка будет изменена с true на false и наоборот.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]public var arc:ArrayCollection=new ArrayCollection([{college:"College0",lock:true,status:"in progress" }
,{college:"College1",lock:true,status:"in progress" }
,{college:"College2",lock:true,status:"in progress" }
,{college:"College3",lock:false,status:"in progress"}
]);
private function changeBookletLockStatus():void
{
arc[dgBooklet.selectedIndex].lock = (arc[dgBooklet.selectedIndex].lock==false);
arc.refresh();
}
]]>
</mx:Script>
<mx:DataGrid sortableColumns="false" height="100%" width="100%" id="dgBooklet" dataProvider="{arc}"
alternatingItemColors="[0xfffffff, 0xe4e4e4]" itemClick="changeBookletLockStatus()" >
<mx:columns>
<mx:DataGridColumn headerText="Column 1" dataField="college" />
<mx:DataGridColumn headerText="icon" dataField="lock" width="40">
<mx:itemRenderer>
<mx:Component>
<mx:HBox paddingLeft="2">
<mx:Script>
<![CDATA[
override public function set data( value:Object ) : void
{
super.data = value;
img.source=data.lock==true?"assets/lock.png":"assets/pen.png";
}
]]>
</mx:Script>
<mx:Image id="img" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Status" dataField="status" >
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Application>
person
Santhosh Nayak
schedule
27.07.2011