我不知道它之前是否被问过,也找不到它。为html5输入类型渲染asp.TextBox =“date”
是否可以控制由asp:TextBox呈现的输入文本的类型?我想将其更改为<input type="date">
任何建议或意见,欢迎,感谢
我不知道它之前是否被问过,也找不到它。为html5输入类型渲染asp.TextBox =“date”
是否可以控制由asp:TextBox呈现的输入文本的类型?我想将其更改为<input type="date">
任何建议或意见,欢迎,感谢
居然还有覆盖在非标准的ASP type属性没有简单的方法:文本框。 可以simly使用输入元素
下面是一个例子
<input type="date" id="Input1" runat="server" />
让我知道,如果它可以帮助...
这里是我是如何做到的...希望它有助于.. 。
添加一个新的项目到您的类型“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');
};
}
}
最后
<script type="text/javascript" src="setNewType.js"></script>
,添加类似下面的背后pageLoad的代码(:
现在加入这行到你的aspx页面的体标签后(改变,无论你称它上面的文件名!)我用VB这里):
aspTxtBxId.Attributes("xtype") = "tel" ' or whatever you want it to be
上面的重要组成部分,是属性(“的xtype”),因为它把属性的xtype在渲染HTML的“文本框”,它的JavaScript,然后找到。并用来替换原来的“type”属性。
祝你好运!
FJF
我记得以前的IE版本(不确定IE9)不允许通过javascript改变输入类型。 – 2012-02-06 13:21:20
通过构建自定义控件,我走了建立自己的一套html5 inputs的路线。我得到iPad和iPhone上的自定义键盘以及真正的asp.net控件的回发编码。它适用于我的内部项目,所以我决定授权整套软件来为其他人节省时间和麻烦。
希望这会有所帮助!
没有为.NET Framework 4的更新,它允许你指定类型属性
http://support.microsoft.com/kb/2468871。
见feature 3
一路下跌的页面
特点3
的新语法允许您定义 TextBox控件是HTML5兼容 。例如,下面的 代码定义了一个TextBox控件是 HTML5兼容:
<asp:TextBox runat="server" type="some-HTML5-type" />
这是个好消息,但并非所有人都可以将我们的旧版应用升级到.NET 4. – styfle 2012-09-25 19:12:00
这不适用于IE10 – JoshYates1980 2017-03-15 18:09:26
如果你不介意的子类,你可以通过overidding的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);
}
}
我知道做到这一点这个问题很旧,但我在Web Forms应用程序中遇到了同样的问题。您需要使用的TextMode
虽然文档指出
使用TextMode属性来指定如何显示一个TextBox控件。三种常用选项是单行,多行或密码文本框。
您还可以使用在Visual Studio 2012/2013中构建的html5,日期,时间,编号等。
https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.textmode(v=vs.110).aspx
这是正确的答案。我厌倦了这些警告信息,我讨厌禁用警告。我不知道为什么我没有考虑textmode - 当然MS不能使用本地属性名称。 – Ripside 2016-11-17 17:50:37
设计者不允许这种类型! – 2010-05-04 20:14:08
不,不幸的是,它会引发编译错误 – 2010-05-04 20:18:00
是的,你是对的。另一种方法是继承TextBox并重写AddAttributesToRender(HtmlTextWriter writer)方法。 writer.AddAttribute(HtmlTextWriterAttribute.Type,“date”); – 2010-05-04 20:31:39