2012-05-25 4 views
0

드롭 다운 목록으로 발견합니다.dropdowlist [object object]

실제로 mysql 데이터베이스에 대한 쿼리로 데이터를로드합니다.

그러나 mysql에서 하나의 레코드에는 빈 필드가 있습니다.

그리고이 경우 flex 대신 'object object'를 ''대신 표시하십시오.

[Bindable] private var DP_CLASSES:ArrayCollection; 

<s:DropDownList id="dpClassTT" width="77" 
    dataProvider="{DP_CLASSES}"labelField="Nom" 
    /> 

// DataProvider를 샘플

<TypesTT> 
    <TypeTT> 
    <Nom> </Nom> 
    </TypeTT> 
    <TypeTT> 
    <Nom>AppA</Nom> 
    <TypeTT> 
<TypesTT> 

라인 [오브제 객체] 이름 (레코드 같은) empy하더라도 드롭 다운리스트에 나타난다.

해결 방법을 알고 계십니까?

감사

+2

일부 코드를 표시 하시겠습니까? – weltraumpirat

+0

빈 항목을 제거하거나 ArrayCollection에서 특정 항목을 제거하는 것보다 아래의 if (arrayCollection.contains (blankEntry))를 사용하여 arraycollection에서 빈 항목을 찾아 자신의 DataProvider를 만듭니다. –

+0

그래, 해결 방법이지만 드롭 다운 목록에 빈 항목을 추가하는 방법은 무엇입니까? 실제로 때때로 사용자가 실수를하고 선택한 항목을 지우고 싶을 때 어떻게 할 수 있습니까? – Flex60460

답변

1

난 당신이 여기에 게시 한 제한된 정보에서 말할 수있는 당신이 드롭 다운리스트의 labelField을 설정해야한다는 것입니다. 당신이 당신의 질문을 업데이트 한 후, 나는 그것이 더 나은 믿고

<s:Script> 
    private function toLabel(item:Object):String { 
     return item["colName"].toString(); 
    } 
</s:Script> 
<s:DropDownList dataProvider="{myQuery}" labelFunction="toLabel" /> 

편집 :

당신은

<s:DropDownList dataProvider="{myQuery}" labelField="colName" /> 

처럼 MXML에서이 작업을 수행하거나, 당신은 같은의 labelFunction을 설정 labelFunction을 사용하십시오.

귀하의 labelFunction는 다음과 같이 될 것이다 :

우리는 빈 태그 Nom가 그것을 캐스팅 필요한 이유입니다 AS3에서 XMLList 객체로 촬영하기 때문에이 작업을 수행 할 필요가
function toLabel(item:Object):String { 
    var str:String=item["Nom"] as String; 
    if(str==null || str==undefined) { 
     str=""; 
    } 
    return str; 
} 

.

+0

게시 할 때 문제가 발생하여 내 질문이 완성됩니다. Thanksq – Flex60460

+0

감사합니다 labelFunction 매우 잘 작동 – Flex60460

+0

다음 upvote 및 동의 :) –

관련 문제