как исправить Gridview после перезагрузки Grid в Adobe flex - PullRequest
0 голосов
/ 02 февраля 2011

Я много искал, но не мог найти точный способ сделать это ... лучше поймешь, если однажды заглянешь на эту страницу. freescale . Пожалуйста, откройте это в IE. Вот мой сценарий ...

нажмите om power Actuation присутствует в leftnav под Analog & Power Management. Вы получите таблицу результатов, и выше у меня есть контейнер, который показывает различные критерии фильтра. Теперь найдите фильтруемый заголовок (сопоставьте имя заголовка с заголовком фильтра), который находится вне сгиба экрана вправо. Затем выберите значение для фильтра, отфильтруйте его.

now here my problem arises

после перезагрузки результатов табличное представление возвращается в исходное положение, что создает путаницу для конечного пользователя по поводу результатов.

поэтому мой вопрос как я могу помешать моему табличному представлению вернуться в исходную точку?
я хочу, чтобы мой результат выглядел следующим образом ..
Value is chosen for filtering, filtering starts, the reloaded values appear in the same screen position, as before the value was chosen

Я думал о viewStack, но не мог понять, как это сделать?
Любое предложение или решение будут высоко оценены !!!!!
Заранее благодарим за ваше драгоценное время, которое вы тратите на чтение моего вопроса.

1 Ответ

2 голосов
/ 02 февраля 2011

Сохраните 'horizontalScrollPosition' сетки данных в переменной, как только вы щелкнете по фильтру. Затем после загрузки данных в таблицу сбросьте горизонтальное положение прокрутки назад.

Я привел пример ниже. В этом примере есть сетка данных и кнопка. При нажатии кнопки данные загружаются, и я сохраняю позицию прокрутки, устанавливая значение «горизонтальная прокрутка» после загрузки данных.

<mx:DataGrid id="dataGridsfgh"
             left="15"
             top="41"
             dataProvider="{employeeList}"
             width="100%"
             horizontalScrollPolicy="on">
    <mx:columns>
        <mx:DataGridColumn headerText="First Name"
                           dataField="firstname"
                           width="40"/>
        <mx:DataGridColumn headerText="Last Name"
                           dataField="lastname"
                           width="40"/>
        <mx:DataGridColumn headerText="Designation"
                           dataField="designation"
                           width="40"/>
        <mx:DataGridColumn headerText="Contact # (Desk)"
                           dataField="deskphone"
                           width="40"/>
        <mx:DataGridColumn headerText="Contact # (Mobile)"
                           dataField="mobilephone"
                           width="40"/>
        <mx:DataGridColumn headerText="Contact # (Home)"
                           dataField="resphone"
                           width="40"/>
        <mx:DataGridColumn headerText="Address"
                           dataField="address1"
                           width="40"/>
        <mx:DataGridColumn headerText="Address"
                           dataField="address2"
                           width="40"/>
        <mx:DataGridColumn headerText="State"
                           dataField="state"
                           width="40"/>
        <mx:DataGridColumn headerText="Zip"
                           dataField="zip"
                           width="40"/>
        <mx:DataGridColumn headerText="Country"
                           dataField="country"
                           width="40"/>
    </mx:columns>
</mx:DataGrid>
<mx:Button x="36"
           y="228"
           label="Save position"
           click="addData();"/>

Код действия:

    private function addData():void
        {
            var temp:int=dataGridsfgh.horizontalScrollPosition;
            var employeeObj:Object=new Object();
            employeeObj.firstname="John";
            employeeObj.lastname="Henry";
            employeeObj.designation="Developer";
            employeeObj.deskphone="XXX-XXX-XXXX";
            employeeObj.mobilephone="XXX-XXX-XXXX";
            employeeObj.resphone="XXX-XXX-XXXX";
            employeeObj.address1="#XXX Seawall Blvd";
            employeeObj.address2="Apt # XXX";
            employeeObj.location="Maui";
            employeeObj.state="Hawaii";
            employeeObj.zip="XXXXX";
            employeeObj.country="U.S";
            employeeList.addItem(employeeObj);
            dataGridsfgh.dataProvider=employeeList;
            dataGridsfgh.invalidateDisplayList();
            dataGridsfgh.horizontalScrollPosition=temp;
        }

Надеюсь, это поможет!

...