Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.08.2007, 18:14
kirillmana вне форума Посмотреть профиль Найти все сообщения от kirillmana
  № 1  
Ответить с цитированием
kirillmana
Banned

Регистрация: Sep 2006
Сообщений: 17
По умолчанию Как понять, какие CheckBox выделены?!

Есть список операторов, которые в DataGrid'е. Все поля, кроме первого, заполняются данными из XML, полученного от сервиса.
В первом столбце - CheckBox.
Выбираем операторов с помощью CheckBox и после (например) нажатия какой-нибудь кнопки, необходимо получить массив операторов, которые выбраны.
Я догадываюсь, как делать, если обрабатывать каждое выделение. А можно ли получить сразу весь массив?!

Код:
		<mx:DataGrid id="dg" bottom="40" left="10" right="10" top="66">
			<mx:columns>				
				<mx:DataGridColumn headerText=" " dataField="isSelect" editable="true" rendererIsEditor="true" itemRenderer="mx.controls.CheckBox" editorDataField="selected" width="1"/>
				<mx:DataGridColumn headerText="УК" dataField="uk" width="10"/>
				<mx:DataGridColumn headerText="Л/С" dataField="paccount" width="10"/>
				<mx:DataGridColumn headerText="КРС" dataField="krs" width="10"/>
				<mx:DataGridColumn headerText="Оператор" dataField="name_op" width="30"/>
				<mx:DataGridColumn headerText="Уров. присоед" dataField="link_level" width="10"/>
			</mx:columns>
		</mx:DataGrid>

Старый 09.08.2007, 18:50
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 2  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
При изменении нажатии checkBox'a меняется значение в dataProvider'e (если itemRenderer написан правильно). При нажатии кнопку, все выделенные элементы легко получить с помощью примерно такой выборки (примерный код):
Код:
var dataProvider:XMLList=(dataGrid.dataProvider as XMLListCollection).sourse
var selectedItems:XMLList=dataProvider.(@isSelect == "true")

Старый 10.08.2007, 09:58
kirillmana вне форума Посмотреть профиль Найти все сообщения от kirillmana
  № 3  
Ответить с цитированием
kirillmana
Banned

Регистрация: Sep 2006
Сообщений: 17
На самом деле, не получается, потому что (как я уже писал), все колонки кроме первой заполняются из полученного XML. В XML'е я получаю информацию об операторах.
И, вытаскивая dataProvider,
Код:
var dataProvider:XMLList=(dataGrid.dataProvider as XMLListCollection).sourse
я получаю тот же самый XML, который задавал на входе и столбца isSelect там нет.


Последний раз редактировалось kirillmana; 10.08.2007 в 10:49.
Старый 10.08.2007, 11:22
kirillmana вне форума Посмотреть профиль Найти все сообщения от kirillmana
  № 4  
Ответить с цитированием
kirillmana
Banned

Регистрация: Sep 2006
Сообщений: 17
Все, как вариант можно при получении XML делать
Код:
myXML = XML(myLoader.data);
var item:XML;
var isSelect:XML = <isSelect>false</isSelect>
for each(item in myXML.children()){
	item.appendChild(isSelect);
}				
dg.dataProvider = myXML.children();
Sneg, там только единственно не dataProvider.(@isSelect == "true"), а dataProvider.(isSelect == "true") - это же элемент, а не атрибут


Последний раз редактировалось kirillmana; 10.08.2007 в 12:16.
Старый 10.08.2007, 11:48
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 5  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Формат dataProvider'a входящих данных ты не дал - потому и предположил что это атрибут

Старый 10.08.2007, 12:21
kirillmana вне форума Посмотреть профиль Найти все сообщения от kirillmana
  № 6  
Ответить с цитированием
kirillmana
Banned

Регистрация: Sep 2006
Сообщений: 17
Только сейчас побочный глюк, не понятно от чего...
Код:
<mx:DataGrid id="dg" bottom="40" left="10" right="10" top="66" editable="true">
	<mx:columns>				
		<mx:DataGridColumn headerText=" " dataField="isSelect" editable="true" rendererIsEditor="true" itemRenderer="mx.controls.CheckBox" editorDataField="selected" width="1"/>
		<mx:DataGridColumn headerText="УК" dataField="uk" width="10" editable="false"/>
		<mx:DataGridColumn headerText="Л/С" dataField="paccount" width="10" editable="false"/>
	</mx:columns>
</mx:DataGrid>
Кликаю на CheckBox в первой строчке - стал выделенным (selected), потом во второй - второй CheckBox выделяется, а выделение с первого CheckBox убирается. Т.е. нельзя как бы выбрать сразу несколько выделенных CheckBox. "Навыделял" я так несколько CheckBox, потом на жимаю на кнопку
Код:
var dataPr:XMLList = (dg.dataProvider as XMLListCollection).source;
var selectedItems:XMLList = dataPr.(isSelect=="true");
var item:XML;
for each (item in selectedItems){
	trace(item.uk);					
}
и у меня убирается выделение и с последнего выделенного CheckBox. Может я какое-то свойство не так поставил.

Но самое интересное, что trace выдает все те строки, которые я как бы выделел, но не видно, что они выделены.


Последний раз редактировалось kirillmana; 10.08.2007 в 12:25.
Старый 10.08.2007, 12:49
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 7  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Не видно - потомучто возможно ты в itemRenderer'e не переписал метод
Код:
set data (data:Object):void
почитай в хелпе - там есть подобный пример.

Старый 10.08.2007, 13:46
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 8  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
kirillmana почему ты отказываешься пользоваться поиском? или ты думаешь что при средней гениальности флешеров ты самый гениальный и только ты придумал использовать чекбоксы в айтем рендерах?

Лично я давал тут пример http://www.flasher.ru/forum/showthread.php?t=91950
чтобы его найти я потратил 5 кликов мыши и 8 нажатий на кнопоки клавиатуры (ввод слова comboBox)

+ я могу найти легким движением руки еще несколько примеров применения комбобокса в айтем рендерах в интернете.

ты уже неделю паришься с этими рендерами, неужели тяжело потратить целый день на изучение, а потом за 5 минут долететь?
__________________
33 коровы

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:18.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:18.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.