如何设置输入类型=“;数字“;关于c#codebehind中的动态文本框
本文关键字:c#codebehind 关于 动态 文本 数字 何设置 设置 输入 类型 | 更新日期: 2023-09-27 18:20:11
我在C#/ASP.NET网页中有一个动态创建的TextBox,我想适应移动浏览器:
TextBox qtybox = new TextBox();
qtybox.ID="qtybox";
qtybox.Text = "0";
qtybox.Width = 30;
container.Controls.Add(qtybox);
我看到我可以直接在纯HTML <form>
:中设置它
<input type="number">
然后将显示数字键盘。
我如何在代码后台使用我的动态TextBox来实现这一点,或者我可以吗?
有没有另一种方法可以从codeehind动态地在我的页面上放置数字输入控件,效果更好?我需要在控件渲染后使用JavaScript来"破解"它吗?(如果可能的话,我宁愿用.NET的方式来做。)
我是用内存写的,但我认为它是:
qtybox.Attributes.Add("type", "number");
对于仍然有同样问题的人,在OP打开这个问题几个月后,微软发布了一个修复问题的更新:
http://support.microsoft.com/kb/2533523(见第12期)。
对于Visual Studio 2010,如果您尝试安装它,但它说它不适用于您,请检查您是否有VS2010 SP1。在这种情况下,只需安装SP1就可以解决问题。下载可在http://www.microsoft.com/en-us/download/details.aspx?id=23691.
这可以使用自定义控件来完成。给你。。。
namespace CustomTextBoxControls
{
public class TextBoxWithType : TextBox
{
public string modifyType { get; set; }
protected override void Render(System.Web.UI.HtmlTextWriter output)
{
if (!string.IsNullOrEmpty(modifyType))
{
output.AddAttribute("type", modifyType);
}
base.Render(output);
}
}
}
在aspx页面中注册。。
<%@ Register Namespace="CustomTextBoxControls" TagPrefix="CustomControl" Assembly="CustomTextBoxControls" %>
<CustomControl:MaskedTextBoxWithType id="txtNumber" modifyType="number" runat="server"></CustomControl:MaskedTextBoxWithType>
type属性将取自上面的modifyType属性。因此,这也可以是货币或任何其他支持HTML5的类型。