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

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

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

Регистрация: Sep 2017
Сообщений: 5
По умолчанию Поиск по DataGrid, выделить несколько строк.

Подскажите пожалуйста как можно реализовать поиск в DataGrid c возможностью выделения нескольких строк?
В примере показанном чуть ниже, реализован поиск по таблице, но если искомых значений несколько, то выделяется последняя искомая строчка.

Содержимое файла *.fla:

Код AS3:
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import fl.controls.DataGrid;
import fl.data.DataProvider;
import fl.controls.dataGridClasses.DataGridColumn;
 
var urlLoader:URLLoader = new URLLoader();
 
//XML для вывода в таблицу
var DgXML:XML = new XML();
var DgXMLURL:URLRequest = new URLRequest("baseToDg.xml");
var DgLoader:URLLoader = new URLLoader(DgXMLURL);
DgLoader.addEventListener("complete", xmlToDgLoaded);
 
var aDp:DataProvider = new DataProvider(DgXML)  ;
aDg.dataProvider = aDp;
 
function xmlToDgLoaded(event:Event):void
{
	DgXML = XML(DgLoader.data);
	aDg.removeAllColumns();
	aDg.addColumn(new DataGridColumn("room"));	
	aDg.addColumn(new DataGridColumn("post"));			
	aDg.addColumn(new DataGridColumn("fio"));	
	aDg.addColumn(new DataGridColumn("inPhone"));	
 
	aDg.columns[0].headerText = "Отдел";
	aDg.columns[1].headerText = "Должность";
	aDg.columns[2].headerText = "ФИО";
	aDg.columns[3].headerText = "Внутренний";
 
	aDg.columns[0].width = 150;
	aDg.columns[1].width = 150;
	aDg.columns[2].width = 250;
	aDg.columns[3].width = 100;
 
	updateDG();
}
 
function updateDG():void
{
	var converter:Array = [];
	for (var i:int = 0; i < DgXML.children().length(); i++)
	{
		converter.push(
		{
			room:DgXML.user[i].@room,	
			post:DgXML.user[i].@post, 					
			fio:DgXML.user[i].@fio, 			
			inPhone:DgXML.user[i].@inPhone	
		});
	}
 
	aDg.dataProvider = new DataProvider(converter);
}
 
//Функция поиска//
btn.addEventListener(MouseEvent.CLICK, search);
function search(event:MouseEvent):void
{
	for (var i:int = 0; i <aDg.length; i ++)
	{
		var array:Array = [i];
		if ((aDg.getItemAt(i).fio == txt.text)||
				(aDg.getItemAt(i).post == txt.text)||
					(aDg.getItemAt(i).room == txt.text)||
						(aDg.getItemAt(i).inPhone == txt.text)
			)			
		{			
			//выделяет только последнюю искомую запись если их несколько
			aDg.selectedIndices  = array;
 
			//выделяет несколько записей, но массив тут задан ручками
			//aDg.selectedIndices  = [1,2,3];
			trace("-------");		
		}		
	}	
}
Для выделения нескольких строк можно использовать следующий вариант:
//aDg.selectedIndices = [1,2,3];

В приложение есть архив с файлами *.fla и *.xml
Вложения
Тип файла: zip Поиск в DG.zip (647.1 Кб, 23 просмотров)

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

Теги
поиск по DataGrid
Опции темы
Опции просмотра

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

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


 


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


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