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();
}
....
}
7条答案
按热度按时间j2cgzkjk1#
我对使用ASP.NET的移动的网站有同样的要求。在没有找到好的解决方案后,我尝试直接在文本框上设置
type="number"
。令我惊讶的是,它成功了!不相信,我创建了一个简单的测试项目来复查。我在每个.NET版本中运行了这行代码:结果如下:
底线是:如果你使用的是ASP.NET 4.0或更高版本,只需将
type="number"
添加到你的文本框。t98cgbkg2#
TextMode
属性用于此,例如,可以被呈现为
除[ MultiLine]之外的文本模式|密码|SingleLine ]是在VS2010之后的一段时间引入的--文档并没有很快告诉我确切的时间。
r55awzrz3#
重写基TextBox控件
或者你可以检查我刚刚在http://www.codeproject.com/Articles/68834/Enhanced-Textbox-Control找到的一个
l7wslrjt4#
可以使用EnumTextBoxMode的成员
这个渲染
完整的枚举是
bmp9r5qi5#
我可以用这样一个动态创建的控件来做到这一点:
dfddblmv6#
你必须创建一个继承自
TextBox
的新控件,并覆盖渲染,或者你可以生成一个JavaScript片段来改变它。osh3o9ms7#
在
<asp:textbox type="number" runat="server">
中设置type="number"
,不管它没有出现在列表中,令人惊讶的是它会工作