Установка высоты строки AdvancedDataGrid при рендеринге AdvancedDataGridRendererProvider - PullRequest
1 голос
/ 10 мая 2011

Flex Guys,

Невозможно установить высоту строки в AdvancedDataGrid с помощью настраиваемого средства визуализации сетки данных AdvancedDataGridRendererProvider.

Snapcode как здесь

<mx:AdvancedDataGrid id="docId" 
                                     visible="true"
                                     width="100%" height="100%"
                                     dataProvider="{data}" 
                                     horizontalScrollPolicy="on"
                                     verticalScrollPolicy="on"
                                     styleName="MyStyle"
                                     styleFunction="getRowColours" 
                                     headerStyleName="MyStyle2"
                                     >
                    <mx:columns>
                        <mx:AdvancedDataGridColumn id="Name" dataField="name" 
                                                   headerText="Name" /> 
                        <mx:AdvancedDataGridColumn id="Value" dataField="values" 
                                                   headerText="Value" 
                                                   editable="true" />
                    </mx:columns>
                    <mx:rendererProviders>
                        <mx:AdvancedDataGridRendererProvider  id="DocID2"
                                                              columnIndex="1" columnSpan="1"
                                                              renderer="{new ClassFactory(MyRenderer)}" />
                    </mx:rendererProviders>
                </mx:AdvancedDataGrid>

Пожалуйста, дайте мне знать.. как я должен справиться с этим ..

Я пытался с приведенным ниже кодом

Установите variableRowHeight = true для вашей DataGrid, а затем, внутри вашего rednrerer, отрегулируйте measureHeight во время выполнения, но я не должен устанавливать measureHeightв процентах.

Заранее спасибо.Java

Я переработал его и рабочий код, как показано ниже код ADG и рендерера тоже

<mx:AdvancedDataGrid id="adg" dataProvider="{input}" height="350" variableRowHeight="true" >
        <mx:columns>
            <mx:AdvancedDataGridColumn dataField="company" headerText="Company"/>
            <mx:AdvancedDataGridColumn dataField="product" headerText="Product"/>
        </mx:columns>
        <mx:rendererProviders>
            <mx:AdvancedDataGridRendererProvider  id="myDataGridRenderer"
                                                  columnIndex="1" columnSpan="1"
                                                  renderer="{new ClassFactory(DataGridRowTestRenderer)}" />
        </mx:rendererProviders>
    </mx:AdvancedDataGrid>

    import spark.components.Label;
    import spark.components.TextArea;

    private var label1:Label;
    private var textArea1:TextArea;
    private var index:int;

    override public function set data(object:Object):void {
        super.data = object;

        this.removeAllElements();

        label1 = new Label();
        label1.text = object.company;

        this.addElement(label1);

        var textArea:TextArea = new TextArea();
        //textArea.text = object.product;
        //textArea.heightInLines = 2;

        index = object.index as int;

        textArea.heightInLines = index+1;

        textArea.text = object.product;
        /* if((index%2) == 0){
            textArea.heightInLines = 2;
        }else{
            textArea.heightInLines = 4;
        } */
        this.addElement(textArea);
    }

    override public function validateDisplayList():void{
        super.validateDisplayList();
    }

]]>

1 Ответ

3 голосов
/ 10 мая 2011

Вы не установили variableRowHeight = true в своем ADG. Вы также можете просто использовать rowHeight = Number, если вы не хотите, чтобы он был переменным. Оттуда ваш рендерер предметов должен иметь определенную высоту (число), а не процент, иначе он не будет работать.

...