使用项目单击有条件地更改数据网格行中的图标

发布于 2024-11-26 03:51:50 字数 93 浏览 0 评论 0原文

我必须设计一个数据网格,在第一列中我必须使用闭合的锁图标。当我单击数据网格中的一行时,所选行的图标应更改为打开的锁定图标。我如何在 Flex 3 中完成这项任务。 请帮我。

I have to designed a datagrid, in first column i have to use closed lock icon. when i click a row in a datagrid the selected rows' icon should change as opened lock icon. how i can achive this task in flex 3.
please help me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小…红帽 2024-12-03 03:51:50

当数据更改时,有两种更新 itemRenderer 的选项。

  1. 第一种是重写设置数据方法;正如你所说
    为你工作。
  2. 第二个是监听 dataChange< /a>
    事件并在该事件处理程序中执行更新。

There are two options for updating an itemRenderer when the data changes.

  1. The first is to override the set data method; as you stated that
    works for you.
  2. The second is to listen to the dataChange
    event and perform your updates in that event handler.
撩起发的微风 2024-12-03 03:51:50

这是我实现上述任务的编码:当锁定为真时,将显示锁定图像,而当显示假笔图像时,将显示锁定图像。单击项目时,锁定将更改为 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>

this is my coding for achieving above task: When lock is true lock image will display when false pen image will display. On item click the lock will be changed to true to false and vice versa..

<?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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文