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 Titlewindow 背景设置为透明

Flex Spark TitleWindow 在拖动时重绘错误

从 Flex 中的模式弹出窗口打开模式弹出窗口?

Flex 修改控件皮肤时,想给checkbox添加个背景图片,路径正确不知道为什么还报无法解析图片的问题

如何消除显示 flex 标题窗口的内置延迟?

在实体内显式加载相关实体