#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();
}
Попробуйте это………..