如何设置输入类型=";“数字”;c#codebeahind中的动态文本框
我在C#/ASP.NET网页中有一个动态创建的文本框,我想适应移动浏览器:如何设置输入类型=";“数字”;c#codebeahind中的动态文本框,c#,html,asp.net,C#,Html,Asp.net,我在C#/ASP.NET网页中有一个动态创建的文本框,我想适应移动浏览器: TextBox qtybox = new TextBox(); qtybox.ID="qtybox"; qtybox.Text = "0"; qtybox.Width = 30; container.Controls.Add(qtybox); 我发现我可以直接在普通HTML中设置它: …然后将显示数字键盘 如何使用codebehind中的动态文本框执行此操作,或者我可以 有没有其他方法可以从co
TextBox qtybox = new TextBox();
qtybox.ID="qtybox";
qtybox.Text = "0";
qtybox.Width = 30;
container.Controls.Add(qtybox);
我发现我可以直接在普通HTML中设置它:
…然后将显示数字键盘
如何使用codebehind中的动态文本框执行此操作,或者我可以
有没有其他方法可以从codebehind动态地在我的页面上放置数字输入控件,这样效果会更好?我是否需要在控件呈现后使用JavaScript“破解”该控件?(如果可能的话,我宁愿用.NET的方式来做。)我是凭记忆写的,但我认为它是:
qtybox.Attributes.Add("type", "number");
这可以使用自定义控件来完成。给你
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>
类型属性将取自上面的modifyType属性。因此,这也可以是货币或支持HTML5的任何其他类型。对于仍然带着相同问题来到这里的任何人,在OP打开此问题几个月后,Microsoft发布了一个更新来修复此问题: (见第12期)
对于VisualStudio2010,如果您尝试安装它,但它说它不适用于您,请检查您是否有VS2010 SP1。在这种情况下,只需安装SP1就可以解决问题。下载可以在。找到,我想你需要HtmlControl,不是吗?我想他指的是
系统.Web.UI.WebControls.TextBox
,不是HtmlControl。这对我不起作用。我不得不使用这个解决方案:这是不必要的,除非你不能应用到ASP.Net来正确解决这个问题。
<%@ Register Namespace="CustomTextBoxControls" TagPrefix="CustomControl" Assembly="CustomTextBoxControls" %>
<CustomControl:MaskedTextBoxWithType id="txtNumber" modifyType="number" runat="server"></CustomControl:MaskedTextBoxWithType>