2012-05-25 8 views
0

Я обнаружил с выпадающим списком.dropdowlist [object object]

Действительно, я загружаю данные по запросу в базу данных mysql.

Но в mysql одна запись имеет пустое поле.

И в этом случае гибкий дисплей [объект объекта] вместо ''.

[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> 

линия [объект Objet] появляются на DropDownList, даже если имя Empy (например, запись одного).

Вы знаете, как это решить?

Благодаря

+2

Показать код, возможно? – weltraumpirat

+0

Создайте собственный DataProvider, удалив пустые записи или найдя пустые записи в arraycollection, используя что-то вроде ниже if (arrayCollection.contains (blankEntry)), чем удалите этот конкретный элемент из ArrayCollection. –

+0

Хорошо, это решение, но как добавить пустую запись в выпадающий список? Действительно, иногда пользователь делает ошибку и хочет очистить выбранный элемент, как это возможно? – Flex60460

ответ

1

Все, что я могу сказать, из ограниченной информации вы публикуемая здесь является то, что вам нужно установить labelField в DropDownList.

Вы можете сделать это в MXML как

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

или вы устанавливаете labelFunction как:

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

EDIT после того как вы обновили свой вопрос, я считаю, что лучше используйте функцию labelFunction.

Ваш labelFunction будет что-то вроде этого:

function toLabel(item:Object):String { 
    var str:String=item["Nom"] as String; 
    if(str==null || str==undefined) { 
     str=""; 
    } 
    return str; 
} 

Мы должны сделать это, потому что пустой тег Nom берется как объект XMLList в AS3, поэтому необходимо, чтобы бросить его.

+0

Проблема возникает, когда я отправляю сообщение, поэтому полный мой вопрос. Thanksq – Flex60460

+0

Спасибо, лейблFunction работает очень хорошо – Flex60460

+0

, тогда upvote и принимайте :) –

Смежные вопросы