Текстовое поле, автоматически расширяемое при ASP.NET

#c# #asp.net #textbox #expandable

#c# #asp.net #текстовое поле #расширяемое

Вопрос:

У меня есть TextBox такой;

 <asp:TextBox id="TextBox1" TextMode="SingleLine" runat="server" />
  

Есть ли какой-либо способ создания Auto Expandable без Javascript или какой-либо другой технологии?

Могу ли я сделать это только с ASP.NET ? (Возможно, некоторые свойства)

Или какой самый простой способ?

Комментарии:

1. «Автоматическое расширение» — это автоматическое изменение ширины текстового поля. Когда я пишу текстовое поле из 5 букв. Widht’ должно быть 50 пикселей, например, для 10 букв должно быть 100 пикселей ..!

Ответ №1:

Вы можете использовать ASP.NET Расширитель AJAX ResizableControl, если вы планируете использовать ajax control toolkit.(Который, я думаю, внутренне использует javascript), я не знаю ни о каком другом способе, отличном от javascript.

Комментарии:

1. Но это не автоматически правильно? Да, оно может предоставлять свойства изменения размера, но пользователи должны изменять размер элемента управления. Есть ли какой-либо автоматический способ?

2. Насколько мне известно, нет. в принципе, каждое действие на стороне клиента обрабатывается javascript. Это единственный язык, который понимают браузеры.

Ответ №2:

Вы можете создать это без javascript, только если вы уже знаете содержимое и не хотите, чтобы ширина динамически менялась при вводе пользователем. Что-то вроде Width="<%=(SourceString.Length * 10)%>"

Комментарии:

1. Если вы уже знаете содержимое, какова цель разрешения пользователю вводить его (если вы не выполняете какой-либо тест типа)

2. Это ограничение для отказа от использования javascript 😉

3. @bortao Ты знаешь правильный синтаксис для этого? Width=»<%=(Исходная строка. Длина * 10)%>» не работает.

4. Просто поместите TextBox1.Width = sourceString. Длина * 10 на вашей странице загрузки

5. @bortao — это необходимое пространство имен? Не найдена исходная строка??

Ответ №3:

Для настройки ширины можно использовать тег dynamic server.

 Width='<%# (Eval("DataSourceField").ToString().Length * 8)%>'
  

Ответ №4:

 protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
        int i = TextBox1.Text.Length;
        int rowsize = (i / 10) 2;
        TextBox1.Rows = rowsize;
        TextBox1.Focus();
    }
  

Попробуйте это………..