2010-02-26 74 views
0

當我運行flex應用程序時,我期望在列表組件中看到25個來自我的數據庫用戶表的記錄,而我所看到的只有25個:[object User]數據未在Flash Builder中公開

我試圖按照本教程:http://www.adobe.com/devnet/flashcatalyst/articles/building_datacentric_app_flashcast_flashbuilder_03.html,但是因爲他使用的是ColdFusion,所以我使用的是HTTP服務類型。基本上,我所做的:

  1. 連接到數據服務(HTTP)
  2. 輸入的XML數據,方法GET,getAllItems操作的URL
  3. 搜索的名稱字符串作爲本作的參數的數據類型操作
  4. 用戶爲服務名稱(如services.users服務包)
  5. 測試操作(需要驗證)和點擊測試,這表明xml數據
  6. 配置返回類型,選擇了用戶作爲根(而不是用戶),和點擊它爲「is Array?」選項
  7. 然後選擇列表組件,檢查「新服務呼叫」,併爲bind_to_field我查「身份證」(不知道到底是什麼綁定到外地做)

以下是已生成相關的東西:

  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]

感謝您的任何建議。

回答

1

您所看到的是Object.toString()的默認impl,它指示正在顯示的對象的類型。它看起來好像數據實際加載得很好,你只是沒有配置List來正​​確顯示它。我看到你正在指定一個labelField值爲「id」,但也許該屬性實際上並不存在於被返回的對象上?您可能想爲labelField嘗試另一個值。

+0

無論我將labelField值更改爲可用的選項列表,都會發生相同的情況。 – JohnMerlino 2010-03-01 18:46:04

+0

您使用Flash Builder嗎?如果是這樣,你應該在List.dataProvider的setter上放置一個斷點並檢查正在設置的數據。 – 2010-03-02 00:55:45

+0

是的問題是XML數據。 – JohnMerlino 2010-03-02 15:46:04