2015-03-31 37 views
1

AdvancedDataGrid的邊界正在消失。我使用彈出對象的同一個實例在不同的時間顯示。AdvancedDataGrid的邊界在彈出消失

第一次彈出窗口和ADG邊框很好,但是當我下次啓動彈出窗口時,邊框消失了。雖然邊框重新出現,如果我嘗試調整列大小。我無法得到這個問題的原因,因此也無法糾正它。

我試圖重新調整ADG的可見性,並試圖調用invalidateDisplayList(),但沒有成功。

* ADG = AdvancedDataGrid 我附加了代碼片段。

<?xml version="1.0" encoding="utf-8"?> 
 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
 
\t \t \t \t \t xmlns:s="library://ns.adobe.com/flex/spark" 
 
\t \t \t \t \t xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="onCC()" width="1500" height="1000"> 
 
\t <s:layout> 
 
\t \t <s:VerticalLayout /> 
 
\t </s:layout> 
 
\t <fx:Script> 
 
\t \t <![CDATA[ 
 
\t \t \t import mx.collections.ArrayCollection; 
 
\t \t \t import mx.controls.advancedDataGridClasses.AdvancedDataGridSortItemRenderer; 
 
\t \t \t import mx.managers.PopUpManager; 
 
\t \t \t [Bindable]private var dp:ArrayCollection = new ArrayCollection(); 
 
\t \t \t 
 
\t \t \t private function onCC():void 
 
\t \t \t { 
 
\t \t \t \t var obj1:Object = new Object(); 
 
\t \t \t \t obj1.col1 = "col11"; 
 
\t \t \t \t obj1.col2 = "col12"; 
 
\t \t \t \t obj1.col3 = "col13"; 
 
\t \t \t \t dp.addItem(obj1); 
 
\t \t \t \t 
 
\t \t \t \t obj1 = new Object() 
 
\t \t \t \t obj1.col1 = "col21"; 
 
\t \t \t \t obj1.col2 = "col22"; 
 
\t \t \t \t obj1.col3 = "col23"; 
 
\t \t \t \t dp.addItem(obj1); 
 
\t \t \t } 
 
\t \t \t 
 
\t \t \t var popup:PopupPanel = new PopupPanel(); 
 
\t \t \t private function launchPopup():void 
 
\t \t \t { 
 
\t \t \t \t 
 
\t \t \t \t PopUpManager.addPopUp(popup, this as DisplayObject); 
 
\t \t \t \t PopUpManager.centerPopUp(popup); 
 
\t \t \t } 
 
\t \t ]]> 
 
\t </fx:Script> 
 
\t <fx:Declarations> 
 
\t \t <!-- Place non-visual elements (e.g., services, value objects) here --> 
 
\t \t 
 
\t </fx:Declarations> 
 
\t 
 
\t <mx:AdvancedDataGrid sortableColumns="false" sortItemRenderer="{null}" dataProvider="{dp}" draggableColumns="false" > 
 
\t \t <mx:groupedColumns> 
 
\t \t \t <mx:AdvancedDataGridColumn headerText="PM1" dataField="col1" /> 
 
\t \t \t <mx:AdvancedDataGridColumnGroup headerText="PM2" > 
 
\t \t \t \t <mx:AdvancedDataGridColumn headerText="NE" dataField="col2" /> 
 
\t \t \t \t <mx:AdvancedDataGridColumn headerText="FE" dataField="col3"/> 
 
\t \t \t </mx:AdvancedDataGridColumnGroup> 
 
\t \t </mx:groupedColumns> 
 
\t </mx:AdvancedDataGrid> 
 
\t <mx:Button label="launch popup" click="launchPopup()" /> 
 
</s:WindowedApplication>

<?xml version="1.0" encoding="utf-8"?> 
 
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
 
\t \t \t xmlns:s="library://ns.adobe.com/flex/spark" 
 
\t \t \t xmlns:mx="library://ns.adobe.com/flex/mx" width="1000" height="750" 
 
\t \t \t close="titlewindow1_closeHandler(event)"> 
 
\t <s:layout> 
 
\t \t <s:HorizontalLayout paddingLeft="20" paddingRight="20" paddingTop="20" paddingBottom="20"/> 
 
\t </s:layout> 
 
\t <fx:Script> 
 
\t \t <![CDATA[ 
 
\t \t \t import mx.collections.ArrayCollection; 
 
\t \t \t import mx.events.CloseEvent; 
 
\t \t \t import mx.managers.PopUpManager; 
 
\t \t \t 
 
\t \t \t [Bindable] private var dp:ArrayCollection = new ArrayCollection(); 
 
\t \t \t protected function titlewindow1_closeHandler(event:CloseEvent):void 
 
\t \t \t { 
 
\t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t PopUpManager.removePopUp(this); 
 
\t \t \t } 
 
\t \t \t 
 
\t \t ]]> 
 
\t </fx:Script> 
 
\t <fx:Declarations> 
 
\t \t <!-- Place non-visual elements (e.g., services, value objects) here --> 
 
\t </fx:Declarations> 
 
\t 
 
\t 
 
\t <mx:AdvancedDataGrid id="dg1" sortableColumns="false" sortItemRenderer="{null}" dataProvider="{dp}" draggableColumns="false" width="100%" height="100%"> 
 
\t \t <mx:groupedColumns> 
 
\t \t \t <mx:AdvancedDataGridColumn headerText="PM1" dataField="col1" /> 
 
\t \t \t <mx:AdvancedDataGridColumnGroup headerText="PM2" > 
 
\t \t \t \t <mx:AdvancedDataGridColumn headerText="NE" dataField="col2" /> 
 
\t \t \t \t <mx:AdvancedDataGridColumn headerText="FE" dataField="col3"/> 
 
\t \t \t </mx:AdvancedDataGridColumnGroup> 
 
\t \t </mx:groupedColumns> 
 
\t </mx:AdvancedDataGrid> 
 
\t 
 
\t <mx:AdvancedDataGrid id="dg2" sortableColumns="false" sortItemRenderer="{null}" dataProvider="{dp}" draggableColumns="false" width="100%" height="100%"> 
 
\t \t <mx:groupedColumns> 
 
\t \t \t <mx:AdvancedDataGridColumn headerText="PM1" dataField="col1" /> 
 
\t \t \t <mx:AdvancedDataGridColumnGroup headerText="PM2" > 
 
\t \t \t \t <mx:AdvancedDataGridColumn headerText="NE" dataField="col2" /> 
 
\t \t \t \t <mx:AdvancedDataGridColumn headerText="FE" dataField="col3"/> 
 
\t \t \t </mx:AdvancedDataGridColumnGroup> 
 
\t \t </mx:groupedColumns> 
 
\t </mx:AdvancedDataGrid> 
 
</s:TitleWindow>

回答

1

我創建一個公共方法的實例非空通話電網invalidateList()。示例:

// Update grids when the display is already instantiated 
public function updates():void{ 
    its grid.invalidateList(); 
}