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

17

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

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

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

    
задан Jhonny D. Cano -Leftware- 04.05.2010 в 21:51
источник

6 ответов

29

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

Ссылка .

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

  

Функция 3

     

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

<asp:TextBox runat="server" type="some-HTML5-type" />
    
ответ дан Chris Diver 20.06.2011 в 13:30
источник
6

Если вы не возражаете против подкласса, вы можете сделать это, переопределив 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);
    }
}
    
ответ дан Colin 17.11.2011 в 00:57
источник
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

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

Удачи!
FJF

    
ответ дан Freaky JellyFish 18.05.2010 в 05:24
источник
2

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

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

  

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

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

Ссылка     

ответ дан maxandcoffee 01.08.2016 в 16:39
источник
1

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

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

    
ответ дан ja928 23.07.2010 в 15:08
источник
0

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

Вот пример

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

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

    
ответ дан Muse VSExtensions 04.05.2010 в 22:03
источник