在FLex 4中将TextArea添加到Datagrid

时间:2012-07-18 07:34:45

标签: flex4 textarea

我们在项目中使用Flex 4。这是一个要求。我们有一个AdvancedDataGrid控件,包含一些行和列。有一个产品专栏。因为产品的数量更多,我们希望它显示在textArea中。我们有一个产品列的渲染器。点击“产品”列后,应该在点击的列上方显示此文本区域。

我在ProductsRenderer.mxml中尝试了以下代码。这里的x和y是任意的。当我单击列时,我无法看到任何文本区域。

    <fx:Declarations>   
        <parsley:Configure/>
</fx:Declarations>

    <fx:Script>
        protected function clickHandler(event:MouseEvent):void
        {
            var textArea:TextArea = new TextArea();
            textArea.height = 40;
            textArea.width  = 50;
            textArea.x = //get x for TextArea;
            textArea.y = //get y for TextArea;
            textArea.visible = true;
            textArea.setFocus();
            textArea.text = fProducts;
        }

    ]]>
    </fx:Script>

<s:VGroup id="Box"
              paddingBottom="0"
              paddingTop="5"
              horizontalAlign="left" height="100%">
        <s:Label id="productsData" top="0" left="0" right="0" bottom="0" width="100%" click="clickHandler(event)"/>
</s:VGroup>

这里应该做什么才能让网格上显示文本区域?感谢

1 个答案:

答案 0 :(得分:0)

您没有将textArea添加到任何父容器。做类似的事情:

protected function clickHandler(event:MouseEvent):void
        {
            var textArea:TextArea = new TextArea();
            textArea.height = 40;
            textArea.width  = 50;
            textArea.x = //get x for TextArea;
            textArea.y = //get y for TextArea;
            textArea.visible = true;
            FlexGlobals.topLevelApplication.addChild(textArea); //this could be something else, showing an example here.
            textArea.setFocus();
            textArea.text = fProducts;
        }