Проблема с растяжением текстового поля

У меня есть следующий код

<table cellpadding="2" cellspacing="2">
  <tr>
    <td>Factory:</td>
    <td>
      <asp:TextBox ID="txtFactory" runat="server" Width="100%"></asp:TextBox>
    </td>
  </tr>
</table>

Моя проблема в том, что иногда заводское текстовое поле может содержать довольно длинное описание из 100 или более символов, и когда это происходит, мое текстовое поле расширяется за край экрана, что приводит к появлению горизонтальной полосы прокрутки в нижней части моего браузера и Я действительно не хочу этого. Я хочу, чтобы мой TextBox расширялся до ширины окна браузера, а также имел возможность изменять размер, когда пользователь изменяет размер своего окна браузера.


person Jagd    schedule 20.05.2009    source источник
comment
Есть ли у вас какой-либо код в файле кода программной части, который каким-либо образом изменит ширину TextBox?   -  person Fredrik Mörk    schedule 21.05.2009
comment
Я использовал ваш код, и у меня не было проблем с прокруткой при загрузке текстового поля с большим количеством текста в IE и FF. В вашем тексте нет пробелов?   -  person D'Arcy Rittich    schedule 21.05.2009
comment
@ Фредрик - Нет, не знаю. Хотя идея хорошая.   -  person Jagd    schedule 21.05.2009
comment
@OrbMan - Нет, не так. Но вы меня задаетесь вопросом, нет ли другого стиля, который немного смещает содержимое страницы вправо, что может объяснить, почему оно превышает ширину браузера.   -  person Jagd    schedule 21.05.2009


Ответы (4)


Если вы не против использования javascript, у jQuery есть очень простое решение этой проблемы. Вы можете использовать его, чтобы изначально установить размер текстового поля и прикрепить обработчик события изменения размера к тегу body. В обработчике событий просто сделайте так, чтобы ширина текстового поля соответствовала ширине тела.

person Ender    schedule 20.05.2009
comment
Я открыто использую javascript, но я еще не начал использовать jQuery. S'pose я должен начать все же. ;) - person Jagd; 21.05.2009

Джагд,

Проверьте свойства Wrap и MaxLength.

В W3Schools есть отличная информация о WebControls.

(http)://www.w3schools.(com)/aspnet/control_textbox.(asp)
--- Я пока не могу публиковать ссылки, извините ---

Удачи,

-Роберт

person Robert Greiner    schedule 20.05.2009

Проверьте свой HTML-код с помощью FF с помощью Firebug и посмотрите, что расширяет ваш основной контейнер.

Если ваш текст слишком длинный и не содержит пробелов, браузер не знает, где разместить разрыв строки, это поведение можно изменить с помощью атрибута WRAP в TD или TextBox (который отображается как SPAN один раз в браузере).

person Romias    schedule 20.05.2009

Где ваша метка для элемента формы? Почему вы используете таблицы для макета? Почему вы указываете ширину текстовой области в HTML, а не в файле CSS?

Пожалуйста, делайте все правильно!

person Matthew James Taylor    schedule 21.05.2009
comment
Пожалуйста, избавь меня от неврозов. Я не прошу здесь аргумент таблицы против div. Есть еще случаи, когда нужно использовать тег таблицы. - person Jagd; 21.05.2009