![]() |
|
Модераторы: gambit |
![]()
|
|
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 1 Всего: 149 |
Всем привет.
Есть текст. Он может быть как маленький, так и большой. Но на его отображение выделено всего три строки, а с шириной этих строк вообще беда -- меняется в рантайме. Так вот этот текст, если помещается, должен быть полностью отображен, если нет, то обрезается чтобы влез, а в конце ставяться три точки (в этом случае при наведении на три точки или на сам текст должен всплывать полный текст). Так же ширина этого контрола зависит от: разрешения экрана, открытого окна, положения панельки (она может быть выдвинута, и задвинута, от этого зависит место, кот выделяется тексту). Вопрос: может уже есть готовый контрол такого типа? Или, может, у кого есть идеи как его слепить самостоятельно. На первое время пойдет определение длинны текста во время загрузки страницы (сейчас это всегда 45*3 символов, что не очень удобно). Зарание спасибо, ivashkanet. Это сообщение отредактировал(а) ivashkanet - 9.8.2007, 13:37 |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 34 Всего: 170 |
Ajax, HoverMenuExtender
если тебе нужен всплывающий текст, то это нужно повесить на клиента - значит, или ajax, или свои скрипты. По поводу длины текста - ИМХО, лучше самому считать String.Length для текста и от ее длины плясать - или урезать ее до известной длины и ставить "...", или не урезать и HoverMenuExtender дизейблить. Ведь кроме проблем с еще есть проблемы на самом сервере (css, themes) - так что проще будет жестко захардкодать как ширину лейбла, так и его текст. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 1 Всего: 149 |
tol05, нито :(
1) Аякс тут не нужен. Ничего не стоит захардкодить весь текст в страницу, а потом брать его и показывать. 2) String.Length посчитать легко. А вот Label.ДлинаЧтоВлазит посчитать проблематично. Но будет некрасиво (это и не нравится заказчику): ![]() А если задвинуть панельку (что справа), то вообще будет куча места. Это при ширине 1280 пикселей. |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 34 Всего: 170 |
мда. Тогда нужно курить javascript-ы... кто-то же должен всплывающий полный текст показывать?
смотрел поиском на здешних подфорумах. Вроде много... -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 1 Всего: 149 |
Так причем здесь всплывающий? Я не о нем. Если бы дело было в нем, то... это не проблема. Проблема в том, что на картинке вверху обрезало всего пять букв слова "Report", хотя места еще завались (а + 3 точки, получается всего 2 буквы обрезало). И хотелось, бы (пока) обойтись без жаваскрипта. Чтонить типа:
|
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
ivashkanet, на стороне сервера нельзя узнать ширину клиентской части где будет отображаться контрол. Потому надо это делать только лишь с помощью JS. сделать твой спан блоком, задать ширину и перехватывать resize окна, считать ширину области и ширину твоего контрола, после этого считать нужную тебе длину и обрезать текст. Но все это только лишь на стороне клиента. Сервер тут ничем не поможет.
С полной уверенностью не могу сказать, но не думаю, что такие контролы существуют. Слишком уникальная задача + ко всему ее можно можно и нужно решать с помощью html'я. кстати, можно делать обрезать и с помощью clip этот объект... -------------------- |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 1 Всего: 149 |
Нууу, может браузер в реквесте отправляет какие-нить данные о размере окна Но не важно, жаваскрипт так жаваскрипт Есть идеи? Так любой контрол в конечном виде предвращается в HTML... Поподробнее тут плиз. |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
Идеи есть :о) ща буду пытаться реализовать. Надо придумать как определить ширину в пикселях одной буквы. А можно что-нибудь другое придумаю... :о) вобщем ща буду мозговать. Это CSS пропортя... позволяет скрывать данные :о) Добавлено через 1 минуту и 20 секунд ivashkanet, кстати, а можешь написать шаблон того как это все выводиться ??? а то сложно предусмотреть все варианты :о) да и не хочется. Слишком много времени на это тогда потрачу. -------------------- |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 1 Всего: 149 |
Ведь может возникнуть задача менять дизайн в зависимости от размеров окна пользователя (не все же делать резиновым как в 35-м году Это не проблема. Можно вручную подобрать. Шрифт меняться не будет.
Нуу, допустим, это таблица на три столбца. В центральном, например, лежит наш контрол. В стилях для него прописано занимать все доступное ему место. Таблица может менять свои размеры. |
|||
|
||||
| Mymik |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
Так что левых данных тут дофига :о) Странно... надо будет полазить по коду и посмотреть как они это реализуют :о)
обычно для этого тоже используется JS :о)... во всяком случаи когда на немцев работал, то у них там был супер-пупер модный код, который это делал... деревянный до безумия, но пришлось использовать...
-------------------- |
||||||||
|
|||||||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 1 Всего: 149 |
Оооо, класс. Если эта штука ещё возвращает корректное значение, то это моя панацея (хотя бы на первый момент).
Это отправляет сам браузер (может только IE это и отправляет, а остальные об этом ничего не знают). Конечно. Но высокоуровневыми средствами проще (это мой первый реальный ASP .net проект). Почти Эта закруглённая картинка и есть предмет трудностей. Именно она ездит влево-вправо и меняет размер "таблицы". Её можно съэмулировать простым жаваскриптом на кнопке, который будет менять ширину таблицы. А вообще, нафик нам нужна эта таблица. Просто нужен элемент (див/не див) который будет обрезать текст в зависимости от своих размеров. Т.е. будет поле и кнопка: забил 10, нажал OK, размер элемента стал 10 и текст корректно (или близко к корректному) обрезался; забил 100, ОК, опять корректно обрезался. |
|||
|
||||
| Idsa |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Так что доверять этим значениям не стоит. |
||||
|
|||||
| Zakonnic |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 25.4.2006 Репутация: 3 Всего: 6 |
ivashkanet, кажись, я знаю чо те надо.
Вот, нашел в мсдн:
--------------------
...и никогда не пишите в комментариях правду |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 1 Всего: 149 |
Zakonnic, "text-overflow : ellipsis; overflow : hidden" Выглядит неплохо
Попробую заюзать ;-) Что-то меня колбасит: открывают три дива, а закрывают только один P.S. Правда лиса его некорректно отображает (без точек), но эт фикня. Нам IE только и нужен |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 1 Всего: 149 |
Так, оттещено -- работает как часы.
Только вот плохо, что несколько строчек оно не поддерживает. Получается это решение только одной части задания (с названием проекта), а часть с его описанием остаётся открытой (там где нжуно то же самое, но для 3-х строчек) Добавлено @ 17:51
Это сообщение отредактировал(а) ivashkanet - 13.8.2007, 17:53 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |