Flex - 无法在TitleWindow中显示datagrid

时间:2010-11-02 14:21:17

标签: flex actionscript-3 datagrid flex4

我正在尝试在Spark TitleWindow中添加一个DataGrid,并且由于某种原因它没有正确显示。

当我在主mxml中放入相同的代码时,它会正确显示。完全相同的代码在TitleWindow中显示出奇怪的效果。

<mx:DataGrid x="10" y="51" width="535" height="215" id="musicianGrid">
    <mx:columns>
        <mx:DataGridColumn headerText="First Name" dataField="firstName" width="90"/>
        <mx:DataGridColumn headerText="Last Name" dataField="lastName" width="90"/>
        <mx:DataGridColumn headerText="Band/Group" dataField="bandName" />
        <mx:DataGridColumn headerText="Record Label" dataField="recordLabel" width="135"/>
    </mx:columns>
</mx:DataGrid> 

在标题窗口中,它看起来像这样 - alt text

在主要的mxml中,它看起来像这样 - alt text

代码没有变化......

你能告诉我发生了什么事吗?

3 个答案:

答案 0 :(得分:1)

我的猜测是你为你的标题窗口设置了一些由DataGrid继承的样式。希望有所帮助。

答案 1 :(得分:1)

使用FlexGlobals.topLevelApplication打开它时,Flex中似乎还有一个错误:

var dialog:MyDialog = PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, MyDialog, true) as MyDialog;

这发生在我的DateField控件上,所以我使用对“this”的调用更改了它,但需要注意的是它在我的模块中居中而不是应用程序

答案 2 :(得分:0)

以下是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" width="100%" height="100%">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <mx:DataGrid width="535" height="215" id="musicianGrid">
        <mx:columns>
            <mx:DataGridColumn headerText="First Name" dataField="firstName" width="90"/>
            <mx:DataGridColumn headerText="Last Name" dataField="lastName" width="90"/>
            <mx:DataGridColumn headerText="Band/Group" dataField="bandName" />
            <mx:DataGridColumn headerText="Record Label" dataField="recordLabel" width="135"/>
        </mx:columns>
    </mx:DataGrid> 
</s:TitleWindow>

结果是: alt text

重新检查你如何调用/显示你的TitleWindow ......