Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> scroll содержания таблицы 
V
    Опции темы
niasilil
Дата 10.8.2008, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: нет
Всего: 9



Есть табличка из множества строк, под табличкой пара кнопок. 
Нужно сделать так чтобы содержимое таблицы прокрутывалось, при этом заголовок и кнопки оставались на месте. 
Единственное, что приходит на ум это сделать две таблички и поместить вторую в scrollable div. Решение подходит, но размеры колонок получаются разные.

Как установить размеры столбцов первой таблицы? заранее размеры ячеек второй таблицы неизвестны. Вроде как надо что то делать в функции onload(), но что? 

Спасибо.
Если есть другие идеи чтоб не разбивать таблицы, то было бы тоже здорово. 
И да, в поиске чего то с полпинка не нашел, а ключевой фразы на ум не приходит. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Itsys
Дата 10.8.2008, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 12
Всего: 34



Я делал так:
Код

function HeaderSizes(mtable, header)
{
    //mtable - основная таблица, header - таблица с заголовком
    var ctable = mtable.rows.item(0).cells;
    var cheader = header.rows.item(0).cells;
    for (var i = 0; i < ctable.length; i++){
        cheader.item(i).width = ctable.item(i).clientWidth - 2;
    }
}


Добавлено через 1 минуту и 33 секунды
ЗЫ советую поставить функцию не только в onLoad, но и в onChange
PM MAIL WWW Skype   Вверх
ksnk
Дата 10.8.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(Itsys @  10.8.2008,  12:57 Найти цитируемый пост)
Я делал так:
 А доктайп и стили таблицы можно озвучить?



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Itsys
Дата 10.8.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 12
Всего: 34



ksnk,  smile Делал под IE 7 для внутреннего сервера, без доктайпа, а из стилей обычный двухпискельный бордер...

ЗЫ Я не говорил, что это кросплатформенное решение.

ЗЗЫ Ну если хорошенько подумать, то можно чего-нибудь сварганить...
PM MAIL WWW Skype   Вверх
ksnk
Дата 10.8.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Itsys, Спасибо ;-) Под нужными мне доктайпами и под доступными мне браузерами оно действительрно работает. я обычно такое решал с помошью table-layout:fixed и заранее определенными размерами столбцов. Так лучше!


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
niasilil
Дата 11.8.2008, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: нет
Всего: 9



Спасибо, работает под ie7, что мне и надо. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
niasilil
Дата 12.8.2008, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: нет
Всего: 9



Рано радовался, блин. Под конец дня вылез баг. 
Если первая ячейка второй таблицы не содержит данных (<td></td>), то javascript вылетает с ошибкой. 

Чего делать? Можно ли как то измерить рамер и скопировать размер ячейки если в ней нет данных? 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
niasilil
Дата 12.8.2008, 04:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: нет
Всего: 9



хм, сделал пример, и все работает без наших css и всяких taglibs. Странно. 
Код

<html>
<head>
<script>
function HeaderSizes()
{
    var ctable = document.getElementById("TB").rows.item(0).cells;
    var cheader = document.getElementById("TA").rows.item(0).cells;
    for (var i = 0; i < ctable.length; i++){
        if(cheader(i).clientWidth < ctable(i).clientWidth)
        {
            cheader(i).width = ctable(i).clientWidth - 2;
        } 
        else 
        {
            ctable(i).width = cheader(i).clientWidth - 2;
        }
    }
}
</script>

</head>
<body onLoad="HeaderSizes()">
<table id="TA" border="1">
    <tr>
        <td>header1</td>
        <td>header2</td>
        <td>longheader</td>
    </tr>
</table>
<table id="TB" border="1">
    <tr>
        <td></td>
        <td>test2</td>
        <td>short</td>
    </tr>
    <tr>
        <td>test3longer_than_the_header</td>
        <td>The longest line</td>
        <td>short</td>
    </tr>
</table>
</body
</html>


PS Сильно не пинайте ногами за простые вопросы, я все больше по java специалист, а не по javascript. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Itsys
Дата 12.8.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 12
Всего: 34



Вставь в пустую ячейку &nbsp; и будет тебе счастье  smile 
PM MAIL WWW Skype   Вверх
niasilil
Дата 16.8.2008, 04:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: нет
Всего: 9



Цитата(Itsys @ 12.8.2008,  10:55)
Вставь в пустую ячейку &nbsp; и будет тебе счастье  smile

ну это первое что пришло на ум. 
на самом деле у меня в коде просто была ошибка, все прекрасно работает. Спасибо. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0553 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.