如何在数据网格中有一个链接,并在单击flex中的链接时弹出一个窗口?

时间:2009-10-15 05:46:04

标签: flex datagrid

我有一个包含不同类型列的数据网格,比如我有复选框,组合框和文本输入作为列类型。

现在我希望其中一个列类型为链接,标签为“view”。该列中的所有行都链接到相同的标签“View”,单击它时,我想要打开一个弹出窗口?

这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">  
<mx:Script>
    <![CDATA[

        [Bindable] 
        private var defectDetails:ArrayCollection = new ArrayCollection([ ]);

        private function addDefect():void{
             defectDG.dataProvider.addItem(
                {CommentHistory:"View"}
            );
            defectDG.height += 30; 
        }

        private function defectCommentsPopUp():void{
            var helpWindow:defectCommentsLookUp=defectCommentsLookUp(PopUpManager.createPopUp(this, defectCommentsLookUp, true));
        }
    ]]>
</mx:Script>

<mx:DataGrid id="defectDG" dataProvider="{defectDetails}" variableRowHeight="true" width="100%" height="75" >

<mx:columns>

    <mx:DataGridColumn headerText="Select" dataField="Select" itemRenderer="mx.controls.CheckBox" width="50" textAlign="center" />

    <mx:DataGridColumn headerText="Defect Id" dataField="DefectId" itemRenderer="mx.controls.TextInput" textAlign="center"/> 

    <mx:DataGridColumn headerText="Status" dataField="Status" itemRenderer="mx.controls.ComboBox"   textAlign="center"/>

    <mx:DataGridColumn headerText="Severity" dataField="Severity" itemRenderer="mx.controls.ComboBox"  textAlign="center" />    

    <mx:DataGridColumn headerText="Comment History" dataField="CommentHistory" itemRenderer="mx.controls.Text" textAlign="center" headerWordWrap="true" />

</mx:columns>
</mx:DataGrid>

<mx:Button styleName="buttonStyle" label="Add New Defect" click="addDefect()"/>

</mx:VBox>

我不知道如何在datagrid中引入链接。因此使用Text控件显示“View”标签。现在,如果我在数据网格中单击此项“查看”,我想要弹出功能,即要调用defectCommentsPopUp()。

怎么做?

1 个答案:

答案 0 :(得分:2)

将值分配给commentHistory,以帮助识别行。

<mx:DataGridColumn dataField="commentHistory">
  <mx:itemRenderer>
    <mx:Component>
      <mx:Label text="View" click="outerDocument.onViewClick(data)"/>
    </mx:Component>
  </mx:itemRenderer>
</mx:DataGridColumn>
脚本中的

private function onViewClick(item:Object):void
{
  //item contains the commentHistory value of the clicked row.
  showPopUp(item);
}