【问题标题】:data not being exposed in flash builder数据未在 Flash Builder 中公开
【发布时间】:2010-02-26 22:14:30
【问题描述】:

当我运行 flex 应用程序时,我希望在列表组件中从我的数据库的 users 表中看到 25 条记录,而我看到的只有 25 条:[object User]

我尝试按照本教程进行操作:http://www.adobe.com/devnet/flashcatalyst/articles/building_datacentric_app_flashcast_flashbuilder_03.html,但由于他使用的是 ColdFusion,因此我使用的是 HTTP 服务类型。基本上,我做了什么:

  1. 连接到数据服务 (Http)
  2. 输入了一个xml数据的url,方法GET,getAllItems的操作
  3. 搜索名称字符串作为此操作参数的数据类型
  4. users 作为服务名(services.users 作为服务包)
  5. 测试操作(需要认证),点击测试,显示xml数据
  6. 配置返回类型,选择用户为root(不是用户),点击“是数组吗?”选项
  7. 然后选择列表组件,检查“新服务调用”,对于 bind_to_field,我检查了“id”(不确定绑定到字段的确切作用)

以下是生成的相关内容:

            protected function list_creationCompleteHandler(event:FlexEvent):void
        {
            getAllItemsResult.token = users.getAllItems(/*Enter value(s) for */ search);
        }

    <fx:Declarations>
    <s:CallResponder id="getAllItemsResult" />
    <users:Users id="users" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
</fx:Declarations> 

            <s:List skinClass="components.DataList3" x="65" y="96" change="list_changeHandler()" id="list" creationComplete="list_creationCompleteHandler(event)" dataProvider="{getAllItemsResult.lastResult}" labelField="id">
        </s:List>

我确实注意到一条错误消息,上面写着“访问未定义的属性搜索”。但是这又是生成的代码,所以我不知道它应该在哪里定义。我主要担心的是它没有显示数据库中的记录(通过 xml),而只是显示: [对象用户]

感谢您的任何建议。

【问题讨论】:

    标签: xml apache-flex arrays flash-builder


    【解决方案1】:

    您看到的是 Object.toString() 的默认实现,它指示正在显示的对象的类型。看起来数据实际上加载得很好,你只是没有配置列表来正确显示它。我看到您正在指定一个 labelField 值为“id”,但可能该属性实际上并不存在于返回的对象上?您可能想为 labelField 尝试另一个值。

    【讨论】:

    • 无论我将 labelField 值从它提供的可用选项列表中更改为什么,都会发生同样的事情。
    • 您在使用 Flash Builder 吗?如果是这样,您应该在 List.dataProvider 的设置器上放置一个断点并检查正在设置的数据。
    • 是的,问题在于 xml 数据。
    猜你喜欢
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2012-01-24
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多