Проблема цвета фона ячейки DataGrid в Apache Royale - PullRequest
0 голосов
/ 17 октября 2019

Давайте не будем принимать этот код

<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:j="library://ns.apache.org/royale/jewel"
               xmlns:js="library://ns.apache.org/royale/basic" 
               xmlns:local="*" xmlns:binding="org.apache.royale.binding.*" applicationComplete="ev_applicationComplete()" >

    <js:valuesImpl>
        <js:SimpleCSSValuesImpl />
    </js:valuesImpl>

    <js:initialView>

        <js:View>
            <js:beads>
                <js:VerticalLayout/>
            </js:beads>

            <js:DataGrid id="mydg" x="20" width="400" height="200" rowHeight="40">
                <js:columns>
                    <js:DataGridColumn label="Name" dataField="label" columnWidth="100" />
                    <js:DataGridColumn label="Sales" dataField="value" columnWidth="300" />
                </js:columns>
            </js:DataGrid>

            <js:TextButton text="Set again" click="ev_setdp()"/>
        </js:View>
    </js:initialView>

    <fx:Style>
        @namespace js "library://ns.apache.org/royale/basic";

        .DataGridColumnList .StringItemRenderer {
            border-style: solid;
            border-color: #CCCCCC;
            border-width: 1px;
            background-color: #ff0000;
            line-height: 40px;
            padding: 2px;
        }

        .DataGridColumnList .DataItemRenderer {
            border-style: solid;
            border-color: #CCCCCC;
            border-width: 1px;
            background-color: #ff0000;
            line-height: 40px;
            padding: 2px;
        }


    </fx:Style>

    <fx:Script>
    <![CDATA[

        import org.apache.royale.collections.ArrayList;

        private function ev_applicationComplete():void {
            mydg.dataProvider = ar;
        }

        private function ev_setdp():void {
            mydg.dataProvider = null;
            mydg.dataProvider = ar;
        }

        private var ar:Array = ["Bob", "Joe", "Frank", "Sally"];

    ]]>
    </fx:Script>
</js:Application>

Показывает сетку с красным фоном ячейки. Если при наведении мыши на одну ячейку отображается серый цвет, но при развертывании цвет снова не становится красным.

1) Это ошибка? Я что-то пропускаю?

2) Может кто-нибудь подсказать, как вызвать rollovercolor? (серый). Я пытался .DataGridColumnList .StringItemRenderer:hover, но это не работает

enter image description here

Для 1) Я считаю, что проблема в том, что element.style не имеет правильного цветапосле развертывания

enter image description here

1 Ответ

0 голосов
/ 27 октября 2019

Попробуйте изменить блок стиля на что-то вроде:

<fx:Style>
    @namespace js "library://ns.apache.org/royale/basic";

    .DataGridColumnList {
        background-color: #ff0000;
    }

    .StringItemRenderer {
        border-style: solid;
        border-color: #CCCCCC;
        border-width: 1px;
        line-height: 40px;
        padding: 2px;
    }

</fx:Style>
...