Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2010, 09:44
Интересующийся
Отправить личное сообщение для Prizrak177 Посмотреть профиль Найти все сообщения от Prizrak177
 
Регистрация: 02.09.2010
Сообщений: 10

Сортировка таблицы, при помощи js
Подскажите пожалуйста работающий способ, ну или вдруг кто сталкивался.

Требуется отсортировать таблицу, в которой имеются rowspan="2" и rowspan="3".

Всякие tablesorter и jqgrid не умеют работать с rowspan и полностью нарушают структуру таблицы.

Может кто подскажет в каком направлении копать хотябы, либо идею как - это можно реализовать.


Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2010, 10:13
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

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

попробуйте написать сами с нуля, используя DOM.
сам факт перемещения строк таблицы реализуется нетрудно, если вы сможете ответив на предыдущие вопросы понять, как именно вам надо манипулировать таблицей
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2010, 10:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Как вариант, таблицу можно превратить в одномерный массив если в ячейки с данными вставить ДИВы и дать им ИДшники типа

<div id='data_N'>...</div>


Где N это номер попорядку. Тогда все ровспаны и колспаны не смогут влиять на сортировку.

Сообщение от Gvozd
сам факт перемещения строк таблицы реализуется нетрудно
Таки может просто "двигать" сами данные меняя значение иннерХТМЛ?
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2010, 10:24
Интересующийся
Отправить личное сообщение для Prizrak177 Посмотреть профиль Найти все сообщения от Prizrak177
 
Регистрация: 02.09.2010
Сообщений: 10

Структура таблицы имеет похожий вид(на практике 25 строк и больше столбцов)

Необходима сортировка по 1 и 4 столбцу соответственно. Сортировка по 2 и 3 не столь важна. Соответственно сортироваться должны группы(1 и 10 в данном случае). Сортировка соответственно будет производиться пользователем при клике на "Название 1" или "Название 4"
<<table border="1">
	<thead>
		<tr>
			<th>
				Название 1
			</th>
			<th>
				Название 2
			</th>
			<th>
				Название 3
			</th>
			<th>
				Название 4
			</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td rowspan="2">
				Группа 1
			</td>
			<td>
				Элемент 2
			</td>
			<td>
				Элемент 3
			</td>
			<td rowspan="2">
				Элемент 4
			</td>	
		</tr>
		<tr>

			<td>
				Элемент 2.2
			</td>
			<td>
				Элемент 3.2
			</td>

		</tr>
<tr>
			<td rowspan="2">
				Группа 10
			</td>
			<td>
				Элемент 20
			</td>
			<td>
				Элемент 30
			</td>
			<td rowspan="2">
				Элемент 40
			</td>	
		</tr>
		<tr>

			<td>
				Элемент 20.2
			</td>
			<td>
				Элемент 30.2
			</td>

		</tr>
	</tbody>
</table>
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2010, 10:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Prizrak177, т.е. дальше ты предлагаешь действовать нам?
Ответить с цитированием
  #6 (permalink)  
Старый 02.09.2010, 10:37
Новичок
Отправить личное сообщение для inGray Посмотреть профиль Найти все сообщения от inGray
 
Регистрация: 03.08.2010
Сообщений: 230

ksa,
ji, Каким бы алгоритмом Вы реализовали подобную сортировку?
__________________
Не хочешь, чтобы тебя послали? Не спрашивай куда идти.
Ответить с цитированием
  #7 (permalink)  
Старый 02.09.2010, 11:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от inGray
Каким бы алгоритмом Вы реализовали подобную сортировку?
Как вариант:
- выбрал бы данные из ДИВов
- запомнил бы номер/ИДшник ДИВов
Т.о. можно сделать массив типа

data[i][1]='значение'
data[i][2]='ИДшник_ДИВа'


- Далее отсортировал бы этот массив по "значению"
- Прошелся бы циклом по нему и менял бы значения i-того ДИВа с ИДшником "старого" ДИВа


А вот если сортировать целиком строки - то "нумеровать" нужно уже не <td>, а <tr>.
И запоминать придётся ИДшник всей строки. Тогда "двигать" строку целиком будет продуктивнее чем "переписывать" все её содержимое...
Ответить с цитированием
  #8 (permalink)  
Старый 02.09.2010, 11:33
Интересующийся
Отправить личное сообщение для Prizrak177 Посмотреть профиль Найти все сообщения от Prizrak177
 
Регистрация: 02.09.2010
Сообщений: 10

Я не предлагаю действовать Вам, я полностью описываю ситуацию.

Мне больше нравится возможность двигать строки. Правильно ли я понимаю, что я каждой строке присваиваю id, затем в зависимости от выбора столбца, сортирую эти строки по возрастанию?

Как то слишком просто....
Ответить с цитированием
  #9 (permalink)  
Старый 02.09.2010, 11:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от Prizrak177
Правильно ли я понимаю
Да идея примерно такая.
Но есть и "осложнения". При сортировке именно строки целиком ровспан нужно учитывать обязательно. Т.о. при сортировке придется двигать несколько строк сразу. Количество строк можно всегда узнать из атрибута ровспан у ячейки.
А уш запоминать их ИДшники или просто их количество это уже детали.
Ответить с цитированием
  #10 (permalink)  
Старый 02.09.2010, 11:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от Prizrak177
Как то слишком просто....
Так и задачка-то не "спутник на Юпитер запустить".
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так, чтобы JS при нажатии на кнопку не выполняла запрос со страницы. JSProgrammer Элементы интерфейса 3 18.05.2010 20:18
Как отразить картинку при помощи JS. 2dkott Элементы интерфейса 4 03.09.2009 22:51
Обратная связь ПРИ ПОМОЩИ JavaScript qwertypop Элементы интерфейса 2 23.04.2009 18:30
изменение рисунка в меню при помощи Javasripta Maxim Общие вопросы Javascript 1 05.09.2008 14:59
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00