Flex - 无法在 TitleWindow 内显示数据网格
Posted
技术标签:
【中文标题】Flex - 无法在 TitleWindow 内显示数据网格【英文标题】:Flex - Unable to show datagrid inside a TitleWindow 【发布时间】:2011-05-03 23:27:38 【问题描述】:我正在尝试在 Spark TitleWindow 中添加一个 DataGrid,但由于某种原因它没有正确显示。
当我将相同的代码放入主 mxml 时,它会正确显示。完全相同的代码在 TitleWindow 中显示得很奇怪。
<mx:DataGrid x="10" y="51" id="musicianGrid">
<mx:columns>
<mx:DataGridColumn headerText="First Name" dataField="firstName" />
<mx:DataGridColumn headerText="Last Name" dataField="lastName" />
<mx:DataGridColumn headerText="Band/Group" dataField="bandName" />
<mx:DataGridColumn headerText="Record Label" dataField="recordLabel" />
</mx:columns>
</mx:DataGrid>
在标题窗口中它看起来像这样 -
在主 mxml 中它看起来像这样 -
代码没有变化...
你能告诉我发生了什么事吗?
【问题讨论】:
【参考方案1】:我的猜测是您为标题窗口设置了某种样式,这些样式将被 DataGrid 继承。希望对您有所帮助。
【讨论】:
【参考方案2】:当您使用 FlexGlobals.topLevelApplication 打开它时,Flex 中似乎也存在错误:
var dialog:MyDialog = PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, MyDialog, true) as MyDialog;
这发生在我的 DateField 控件上,因此我使用对“this”的调用对其进行了更改,并注意它位于我的模块而不是应用程序的中心
【讨论】:
【参考方案3】:这是您的 DataGrid 的示例
MainApp.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.managers.PopUpManager;
protected function button1_clickHandler(event:MouseEvent):void
var pop:MyTitle = PopUpManager.createPopUp(this, MyTitle, true) as MyTitle;
PopUpManager.centerPopUp(pop);
]]>
</fx:Script>
<s:Button label="Open" click="button1_clickHandler(event)"/>
</s:Application>
MyTitle.mxml
<?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" >
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:DataGrid id="musicianGrid">
<mx:columns>
<mx:DataGridColumn headerText="First Name" dataField="firstName" />
<mx:DataGridColumn headerText="Last Name" dataField="lastName" />
<mx:DataGridColumn headerText="Band/Group" dataField="bandName" />
<mx:DataGridColumn headerText="Record Label" dataField="recordLabel" />
</mx:columns>
</mx:DataGrid>
</s:TitleWindow>
结果是:
所以重新检查你如何调用/显示你的 TitleWindow...
【讨论】:
以上是关于Flex - 无法在 TitleWindow 内显示数据网格的主要内容,如果未能解决你的问题,请参考以下文章
Flex Spark TitleWindow 在拖动时重绘错误