【问题标题】:Borders of AdvancedDataGrid disappears in popupAdvancedDataGrid 的边框在弹出窗口中消失
【发布时间】:2015-06-04 07:57:16
【问题描述】:

AdvancedDataGrid 的边框正在消失。我使用相同的弹出对象实例在不同时间显示。

第一次弹出框和 ADG 边框很好,但是当我下次启动弹出框时,边框消失了。虽然如果我尝试调整列大小,边框会重新出现。我无法得到这个问题的原因,因此也无法纠正它。

我尝试重新调整 ADG 的可见性并尝试调用 invalidateDisplayList(),但没有成功。

*ADG = AdvancedDataGrid 我附上代码 sn-ps。

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
					   xmlns:s="library://ns.adobe.com/flex/spark" 
					   xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="onCC()" width="1500" height="1000">
	<s:layout>
		<s:VerticalLayout />
	</s:layout>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.controls.advancedDataGridClasses.AdvancedDataGridSortItemRenderer;
			import mx.managers.PopUpManager;
			[Bindable]private var dp:ArrayCollection = new ArrayCollection();
			
			private function onCC():void
			{
				var obj1:Object = new Object();
				obj1.col1 = "col11";
				obj1.col2 = "col12";
				obj1.col3 = "col13";
				dp.addItem(obj1);
				
				obj1 = new Object()
				obj1.col1 = "col21";
				obj1.col2 = "col22";
				obj1.col3 = "col23";
				dp.addItem(obj1);
			}
			
			var popup:PopupPanel = new PopupPanel();
			private function launchPopup():void
			{
				
				PopUpManager.addPopUp(popup, this as DisplayObject);
				PopUpManager.centerPopUp(popup);
			}
		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
		
	</fx:Declarations>
	
	<mx:AdvancedDataGrid sortableColumns="false" sortItemRenderer="{null}" dataProvider="{dp}" draggableColumns="false" >
		<mx:groupedColumns>
			<mx:AdvancedDataGridColumn headerText="PM1" dataField="col1" />
			<mx:AdvancedDataGridColumnGroup headerText="PM2" >
				<mx:AdvancedDataGridColumn headerText="NE" dataField="col2" />
				<mx:AdvancedDataGridColumn headerText="FE" dataField="col3"/>
			</mx:AdvancedDataGridColumnGroup>
		</mx:groupedColumns>
	</mx:AdvancedDataGrid>
	<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" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" width="1000" height="750"
			   close="titlewindow1_closeHandler(event)">
	<s:layout>
		<s:HorizontalLayout paddingLeft="20" paddingRight="20" paddingTop="20" paddingBottom="20"/>
	</s:layout>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.events.CloseEvent;
			import mx.managers.PopUpManager;
			
			[Bindable] private var dp:ArrayCollection = new ArrayCollection();
			protected function titlewindow1_closeHandler(event:CloseEvent):void
			{
				// TODO Auto-generated method stub
				PopUpManager.removePopUp(this);
			}
			
		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	
	
	<mx:AdvancedDataGrid id="dg1" sortableColumns="false" sortItemRenderer="{null}" dataProvider="{dp}" draggableColumns="false" width="100%" height="100%">
		<mx:groupedColumns>
			<mx:AdvancedDataGridColumn headerText="PM1" dataField="col1" />
			<mx:AdvancedDataGridColumnGroup headerText="PM2" >
				<mx:AdvancedDataGridColumn headerText="NE" dataField="col2" />
				<mx:AdvancedDataGridColumn headerText="FE" dataField="col3"/>
			</mx:AdvancedDataGridColumnGroup>
		</mx:groupedColumns>
	</mx:AdvancedDataGrid>
	
	<mx:AdvancedDataGrid id="dg2" sortableColumns="false" sortItemRenderer="{null}" dataProvider="{dp}" draggableColumns="false" width="100%" height="100%">
		<mx:groupedColumns>
			<mx:AdvancedDataGridColumn headerText="PM1" dataField="col1" />
			<mx:AdvancedDataGridColumnGroup headerText="PM2" >
				<mx:AdvancedDataGridColumn headerText="NE" dataField="col2" />
				<mx:AdvancedDataGridColumn headerText="FE" dataField="col3"/>
			</mx:AdvancedDataGridColumnGroup>
		</mx:groupedColumns>
	</mx:AdvancedDataGrid>
</s:TitleWindow>

【问题讨论】:

    标签: actionscript-3 apache-flex advanceddatagrid


    【解决方案1】:

    我创建了一个公共方法,该实例为非空调用invalidateList() 的网格。示例:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多