Я не знаю, было ли задано раньше, и не смог найти его.
Можно ли управлять типом входного текста, который отображается asp: TextBox? Я хотел бы изменить его на <input type="date">
любые предложения или комментарии приветствуются, спасибо
Я не знаю, было ли задано раньше, и не смог найти его.
Можно ли управлять типом входного текста, который отображается asp: TextBox? Я хотел бы изменить его на <input type="date">
любые предложения или комментарии приветствуются, спасибо
Существует обновление для .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" />
Если вы не возражаете против подкласса, вы можете сделать это, переопределив 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);
}
}
Вот как я это сделал... надеюсь, что это поможет...
Добавьте новый проект в проект типа "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
Я знаю, что этот вопрос старый, но у меня была такая же проблема в приложении 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
Я пошел по пути создания своего собственного набора html5 input путем создания пользовательских элементов управления. Я получаю пользовательские клавиатуры на iPad и iPhone, а также обратно-кодировку истинных элементов управления asp.net. Он работал для моего внутреннего проекта, поэтому я решил лицензировать весь пакет, чтобы сэкономить другим людям время и проблемы с этим с нуля.
Надеюсь, это поможет!
На самом деле нет простого способа переопределить атрибут type в стандартном asp: TextBox. Вы можете просто использовать элемент ввода
Вот пример
<input type="date" id="Input1" runat="server" />
Сообщите мне, если это поможет...