2013-06-07 2 views
0

Я новичок в flex/flash builder, мне нужно прочитать данные из текстового документа, а затем разрезать его на куски, которые я изложил в своем пользовательском классе.разделение данных в массиве для отображения в Flex

все это до сих пор работал

var theCustomer:Customer=new Customer(name,address,phoneNo,comment,custNo); 
custArray.addItem(theCustomer); 

Так что теперь я хочу сделать, это отображение только имя из каждого элемента массива в выпадающий список, - а затем при закрытии будет отображать все детали в ящик списка

Если я просто привязываю custArray к combobox, он отображает name:address:phoneNo:comment:custNo, как я его устанавливал, но, как я уже сказал, я хочу только имя, так как я могу отделить имя от каждой записи Customer в массиве ??

Любая помощь вам будет огромной и спасибо заранее!

+0

Как вы сами намекают, вы должны использовать [срез()] (HTTP: // help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html#slice()) метода массива. –

ответ

1

Если я правильно понимаю ваш вопрос, я думаю, вы хотите установить свойство labelField в поле со списком. Это указывает поле в объектах исходных данных для использования в метке.

<s:ComboBox dataProvider="{custArray}" labelField="name"/> 
+0

Я предполагаю, что я был слишком занят, набрав текст и не заметил вашего ответа :) Оставив мое, добавив несколько дополнительных деталей ... но OP должен принять это, поскольку вы сделали это сначала :) –

+0

Нет проблем - я просто преимущество трех минут на вас! Мне нравится ваш ответ, так как у него есть больше информации. –

+0

Благодарим вас за ответ Билла Тернера, но он не изменил отображаемую информацию в combobox, он все еще отображает все 5 полей рядом в раскрывающемся меню и не фильтрует поле имени. –

1

выпадающий список имеет несколько способов указать, что он должен использовать в качестве «метки» для каждого элемента в dataProvider:

  • По умолчанию, если элементы в dataProvider имеет свойство с именем label , и это свойство содержит String, оно отобразит это значение.
  • ComboBox имеет свойство labelField, которое вы можете использовать, чтобы сообщить, где найти "ярлык" для каждого элемента. В вашем случае вы можете установить labelField на «имя»
  • ComboBox имеет свойство labelFunction, которое позволяет вам использовать функцию (которую вы пишете), чтобы указать, какой текст должен отображаться для каждого элемента.

Я предлагаю использовать в labelField, как кажется, наиболее прямо вперед в этом случае:

<s:ComboBox dataProvider="{custArray}" labelField="name" /> 
+0

Благодарим вас за ответ Sunil D, но он не изменил отображаемую информацию в combobox, он все еще отображает все 5 полей рядом в раскрывающемся меню и не фильтрует поле имени. –

+0

@SteveAndrews Хм, может быть, вам следует показать код, который вы используете, для создания экземпляра 'ComboBox'. Похоже, что мы с Биллом Тернером предложили? Используете ли вы специальный скин для 'ComboBox' (который объявляет собственный рендеринг элементов для выпадающего списка ComboBox)? –

+0

'', который я использую для combobox. [link] (http://gyazo.com/3f41efba06c6b0a5ead1518eee02525a) это скриншот приложения Air app и выхода со всеми 5 полями. Благодарим вас за помощь всем, кто мне помогает –