Render ASP.NET TextBox как HTML5 Тип ввода «Число»

Когда ASP.NET TextBox визуализирует, он производит:

 

Однако мне нужно, чтобы он отображался как тип номера HTML5, например:

  

Это возможно?

У меня было такое же требование для мобильного веб-сайта с использованием ASP.NET. Не найдя хорошего решения, я попробовал просто установить type="number" непосредственно в текстовое поле. К моему удивлению, это сработало! Невероятно, я создал простой тестовый проект для двойной проверки. Я запустил эту строку кода в каждой версии .NET:

   

Вот результаты:

     

Итог: если вы используете ASP.NET 4.0 или новее, просто добавьте type="number" в текстовое поле.

Переопределить элемент управления базовым текстовым полем

 public class HTML5TextBox : TextBox { ..... protected override void Render(HtmlTextWriter writer) { //Sth like the code below, you need do some research though writer.AddAttribute(HtmlTextWriterAttribute.Type,"Number"); writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID + "_displayTXT"); writer.AddAttribute(HtmlTextWriterAttribute.Name,this.UniqueID + "t1"); writer.AddAttribute(HtmlTextWriterAttribute.Value,base.Text); writer.RenderBeginTag(HtmlTextWriterTag.Input); writer.RenderEndTag(); } .... } 

Или вы можете проверить тот, который я только что нашел по адресу http://www.codeproject.com/Articles/68834/Enhanced-Textbox-Control

вам нужно будет создать новый элемент управления, наследующий от TextBox и переопределить рендеринг, или вы можете сгенерировать fragment javascript, чтобы изменить его после факта.

Я смог сделать это с помощью динамически созданного элемента управления следующим образом:

 TextBox control = new TextBox(); control.Attributes.Add("Type", "number"); 

Для этого TextMode свойство TextMode , например

  

могут быть представлены как

  

Текстовые моды в дополнение к [MultiLine | Пароль | SingleLine] были введены через некоторое время после VS2010 – документация не сообщает мне точно, когда.

set type="number" в независимо от того, что он не отображается в списке, неожиданно он будет работать

  • Как читать значение частного поля из другого classа в Java?
  • Почему мои поля инициализируются нулевым значением или значением по умолчанию равным нулю, когда я объявил и инициализировал их в конструкторе моего classа?
  • Почему WPF поддерживает привязку к свойствам объекта, но не полям?
  • Давайте будем гением компьютера.