0

当我运行 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. 用户作为服务名称(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),而只是显示:[object User]

感谢您的任何建议。

4

1 回答 1

1

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

于 2010-02-27T09:29:05.790 回答