0

かなり標準的な 1 行 itemrenderer を持ついくつかの DataGrid がありますが、行全体にカスタムの 2 行 itemeditor を使用する必要があります。各セルを個別に編集することはできませんが、保存する前にオブジェクト全体を編集する必要があるため、これを行いたい/行う必要があります。

これまでに 2 つの大きな問題に遭遇しました。

  1. itemeditor を実際に行全体で機能するように配置/表示する方法は?
  2. 編集されたエントリの行の高さを DataGrid に強制的に変更させて、2 行の itemeditor が下の行に流れ込まないようにする方法は?

基本的に、私が欲しいのはこれです: DataGrid アイテムのロールオーバー DataGrid アイテムの編集


マイデータグリッド:

<s:DataGrid id="myDataGrid" height="100%" width="100%" sortableColumns="false" editable="true" variableRowHeight="true">
    <s:columns>
        <s:ArrayCollection>
            <s:GridColumn dataField="foo" itemEditor="myItemEditor"/>

            <s:GridColumn dataField="bar" itemEditor="myItemEditor"/>

            <s:GridColumn width="24" itemRenderer="myItemRenderer"/>
        </s:ArrayCollection>
    </s:columns>
</s:DataGrid>

MyItemEditor:

<?xml version="1.0" encoding="utf-8"?>
<s:GridItemEditor xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Script>
        <![CDATA[
            override public function prepare():void {
                itemLongname.text = this.data["longName"];
                itemShortname.text = this.data["shortName"];
            }
        ]]>
    </fx:Script>

    <s:layout>
        <s:VerticalLayout/>
    </s:layout>

    <s:Group>
        <s:layout>
            <s:HorizontalLayout/>
        </s:layout>

        <s:TextInput id="itemLongname"/>

        <s:TextInput id="itemShortname"/>
    </s:Group>

    <s:Group>
        <s:layout>
            <s:HorizontalLayout/>
        </s:layout>

        <s:Rect width="100%"/>

        <s:Button id="itemSaveButton" label="Save"/>

        <s:Button id="itemCancelButton" label="Cancel"/>
    </s:Group>
</s:GridItemEditor>
4

2 に答える 2

0

私はこれがあなたを助けると思います:)

http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7bf2.html#WS2db454920e96a9e51e63e3d11c0bf65e9f-7fd4

于 2012-05-17T09:01:40.717 に答える