0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
||||||
1 | ||||||
Изменить ширину ячеек одной таблицы, в зависимости от соответствующих ячеек в другой таблице12.10.2012, 11:44. Показов 12817. Ответов 21
Метки нет (Все метки)
День добрый.
Необходимо изменять ширину ячеек одной таблицы, в зависимости от соответствующих ячеек в другой таблице. Написал небольшую функцию, но результата никакого. Подскажите, пожалуйста, в какую сторону глядеть.
0
|
12.10.2012, 11:44 | |
Ответы с готовыми решениями:
21
Заполнение значением одной из нескольких ячеек в зависимости от переменной в одной из ячеек Перенос двух ячеек из одной строки таблицы, в одну ячейку другой таблицы. Перенос двух ячеек из одной строки таблицы, в одну ячейку другой таблицы. Найти схожие позиции ячеек из одной таблицы в другой |
Заблокирован
|
|
12.10.2012, 12:04 | 2 |
таблица - это такая штука, где ширину и высоту у одной ячейки менять никак не получится
при увеличении ширины одной ячейки увеличивается ширина всех ячеек столбца при увеличении высоты одной ячейки увеличивается высота всех ячеек строки с другой стороны, уменьшение ширины и высоты ячейки может, во-первых, не привести к изменению ширины/высоты столбца/строки, потому что минимальная ширина/высота ячеек определяется шириной/высотой их содержимого; во-вторых, бывает, что у текущей ячейки тоже нельзя уменьшить высоту/ширину, потому что она уже минимальна... так что задача ваша, как видите, совсем нетривиальна однако... есть и "плюсы" - увеличивать ширину всех ячеек столбца не надо, достаточным будет изменить ширину одной, другие ячейки столбца сами "подтянутся" аналогично и с высотой - менять её нужно только у одной ячейки строки ----- так что функцию вашу, без знания того - в какую сторону идёт изменение ширины (уменьшается ширина ячейки или увеличивается) - заценить трудно и вообще - я бы с такой задачей не заморачивался выделяете в первой таблице одну ячейку, а в другой из-за этого увеличивается ширина целого столбца одна ячейка и целый столбец... где тут логика?
0
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
12.10.2012, 12:16 [ТС] | 3 |
всё это делается для задания одинаковых размеров столбцов в плавающей шапке таблицы, и самой таблицы.
0
|
Заблокирован
|
|
12.10.2012, 12:29 | 4 |
ну это не так делается
проще всего: 1 - склонировать таблицу 2 - удалить у клона циклом все строки, кроме первой (которая шапка) 3 - а у самой таблицы удалить самую первую строку (шапку) 4 - сравнить циклом попарно ширину ячеек клона и ячеек второй строки (но теперь уже, после удаления шапки - первой) таблицы 5 - той ячейке, которая меньше, добавить ширину 6 - сделать клон плавающим всё! код набросать?
0
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
12.10.2012, 12:31 [ТС] | 5 |
но там таблицы как простыни длиной, надеюсь тормозить не будет и ещё шапка таблицы сложной структуры. в смысле с использованием colspan и rowspan
0
|
Заблокирован
|
|
12.10.2012, 12:46 | 6 |
colSpan - оно не страшно, а вот rowSpan...
надо тогда точно знать - какое количество строк в шапке оставлять и, соответственно, какое количество начальных строк из таблицы удалять ----- да нет, тормоза вовсе не будет: клонирование - оно нетормозное удаление строк (особо, если их много) - да, тормозит, и сильно однако, написав "удалить все строки, кроме первой" - я просто не стал детализировать из клонированной таблицы удалять следует все строки сразу -- clon.innerHTML = '' а потом из основной таблицы клонируется только шапка и приживляется в клон таблицы ----- в общем, рассказывайте - какой там у вас максимальный rowSpan в шапке?
0
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
12.10.2012, 12:51 [ТС] | 7 |
0
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
12.10.2012, 12:59 [ТС] | 9 |
да, строки всего 2. столбцы по 1, и по 3. количество столбцов может меняться
0
|
Заблокирован
|
||||||
13.10.2012, 09:54 | 10 | |||||
мда... задачка в общем виде оказалась нетривиальной
приходится в шапке "перескакивать" со строки на строку, учитывая все возможные rowSpan'ы и colSpan'ы а если ещё добавить сюда возможные rowSpan'ы и colSpan'ы в первых строках тела таблицы, то вообще туши свет... сделать можно, конечно, но довольно трудоёмкое это дело ----- а не попробовать ли вам совсем иначе, без подбора ширины ячеек? простым помещением клона таблицы поверх существующей я тут набросал код не знаю уж, как он поведёт себя с вашими "простынями", попробуйте:
единственное, что может затормозить - это "перерисовка" таблицы внутри клона - сначала она делается чуть уже, затем возвращается к исходной ширине у меня в коде это строки ##43 и 44 но вообще-то эта перерисовка - она ещё в виртуале, клон ещё не приживлён - тормозить как бы не должно
0
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
15.10.2012, 09:49 [ТС] | 11 |
0
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
|
|
15.10.2012, 10:04 | 12 |
выложенный выше код, как он есть, работает нормально
ваш скриншот - это ваша попытка обработать этим скриптом свою таблицу?
0
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
15.10.2012, 10:17 [ТС] | 13 |
0
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
|
||||||
15.10.2012, 10:47 | 14 | |||||
судя по наличию горизонтального скроллбара в вашем скриншоте, таблица у вас много шире, чем 300 пикселей, прописанные в коде выше
так? а выложенный код, наоборот, растягивает относительно узкую таблицу до ширины 300 пикселей вы вообще какую видимую ширину для контейнера планировали? не во всю ширину окна? уберите в стилях ширину width: 300px для #dv0 и width: 100% для #tb0 и скрипт без изменений будет обрабатывать и широкую таблицу, даже со свободной (не фиксированной) шириной контейнера с id="dv0" единственное - если у вас таблица шире окна браузера и появится горизонтальный скроллбар, то надо обрабатывать горизонтальный скролл вместо последних двух строк скрипта выше (где appendChild и закрывающая фигурная скобка) напишите:
0
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
||||||
15.10.2012, 16:21 [ТС] | 15 | |||||
Клон внедряется в тело страницы уже после родителя. и если я цепляю функцию "плавания" на ID dv0 ? то и плавает вся родительская таблица.
Можно ли как-то сменить ID клона? Добавлено через 22 минуты Пардон, ID увидел, но: Клон внедряется в тело страницы уже после родителя. и если я цепляю функцию "плавания", то клонированная шапка в самом низу оказывается, а ф-я "плавания" подразумевает , что блок должен быть перед началом таблицы. Использует jquery.min.js v1.3.2
0
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
|
|
15.10.2012, 19:39 | 16 |
а куда плавать-то?
Не по теме: создавали впечатление вменяемого человека...
0
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
16.10.2012, 00:07 [ТС] | 17 |
При прокрутке страницы шапка плывёт за видимой областью.
И я вполне нормален, в отличии от заказчика...
0
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
|
|
16.10.2012, 01:49 | 18 |
0
|
139 / 137 / 66
Регистрация: 15.05.2012
Сообщений: 515
|
|
16.10.2012, 02:35 | 19 |
ну а на div'ах таблицу сделать, а потом тянуть хоть одну, хоть выборочные...
0
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
16.10.2012, 10:31 [ТС] | 20 |
0
|
16.10.2012, 10:31 | |
16.10.2012, 10:31 | |
Помогаю со студенческими работами здесь
20
Изменение цвета ячеек и суммирование значений в оной таблице на основании данных другой таблицы Копирование ячеек таблицы 2, соответствующих искомым значениям таблицы 1 Задать разную ширину ячеек и избавиться от стандартного синего выделения ячеек, заменив его на белый цвет Как автоматически подстраивать ширину колонки TableView в зависимости от содержимого ячеек? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |