Подтвердить что ты не робот

Render asp.TextBox для ввода типа html5 = "дата"

Я не знаю, было ли задано раньше, и не смог найти его.

Можно ли управлять типом входного текста, который отображается asp: TextBox? Я хотел бы изменить его на <input type="date">

любые предложения или комментарии приветствуются, спасибо

4b9b3361

Ответ 1

Существует обновление для .NET framework 4, которое позволяет вам указать атрибут type

http://support.microsoft.com/kb/2468871.

См. feature 3 путь вниз по странице

Функция 3

Новый синтаксис позволяет определить Элемент управления TextBox, который является HTML5 совместимы. Например, следующее код определяет элемент управления TextBox, который Совместимость с HTML5:

<asp:TextBox runat="server" type="some-HTML5-type" />

Ответ 2

Если вы не возражаете против подкласса, вы можете сделать это, переопределив AddAttributesToRender

public class DateTextbox : System.Web.UI.WebControls.TextBox
{
    protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
    {
        writer.AddAttribute("type", "date");
        base.AddAttributesToRender(writer);
    }
}

Ответ 3

Вот как я это сделал... надеюсь, что это поможет...

Добавьте новый проект в проект типа "JScript файл", затем вставьте этот код в:

var setNewType;
if (!setNewType) {
setNewType = window.onload = function() {
    var a = document.getElementsByTagName('input');
    for (var i = 0; i < a.length; i++) {
        if (a[i].getAttribute('xtype')) {
            a[i].setAttribute('type', a[i].getAttribute('xtype'));
            a[i].removeAttribute('xtype');
        };
    }
}

Теперь добавьте эту строку на страницу aspx после тега body (измените имя файла на все, что вы назвали выше):
  <script type="text/javascript" src="setNewType.js"></script>

Наконец, добавьте что-то вроде следующего к вашему коду за страницей PageLoad (здесь я использовал VB):

aspTxtBxId.Attributes("xtype") = "tel" ' or whatever you want it to be

Важная часть выше - это атрибуты. ( "xtype" ), поскольку она помещает атрибут XTYPE в визуализированный html для "текстового поля", который затем находит и использует для замены исходного атрибута "type".

Удачи!
FJF

Ответ 4

Я знаю, что этот вопрос старый, но у меня была такая же проблема в приложении Web Forms. Вам нужно использовать TextMode

В документации указано, что

Используйте свойство TextMode, чтобы указать, как отображается элемент управления TextBox. Три общих варианта: однострочное, многострочное или текстовое поле пароля.

Вы также можете использовать html5, дату, время, номер и т.д., встроенные в Visual Studio 2012/2013.

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.textmode(v=vs.110).aspx

Ответ 5

Я пошел по пути создания своего собственного набора html5 input путем создания пользовательских элементов управления. Я получаю пользовательские клавиатуры на iPad и iPhone, а также обратно-кодировку истинных элементов управления asp.net. Он работал для моего внутреннего проекта, поэтому я решил лицензировать весь пакет, чтобы сэкономить другим людям время и проблемы с этим с нуля.

Надеюсь, это поможет!

Ответ 6

На самом деле нет простого способа переопределить атрибут type в стандартном asp: TextBox. Вы можете просто использовать элемент ввода

Вот пример

<input type="date" id="Input1" runat="server" />

Сообщите мне, если это поможет...