【发布时间】:2015-01-15 14:07:58
【问题描述】:
我想创建一个自定义控件:一个数字文本框。 我按照本教程(http://www.codeproject.com/Articles/42382/Creating-a-Numeric-TextBox-Control)进行操作,但遇到了问题。 我想像这样动态地创建这些控件:
NumericTextBox _Quantity = new NumericTextBox();
_Quantity.ID = "_Quantity" + id;
_Quantity.Text = "1";
但是,据说NumericTextBox中没有“ID”属性的定义。然而,这个控件是 TextBox 的子控件,所以它应该有 ID 属性,就像 Text 的那个很好用......
using System;
using System.Web.UI;
[assembly: WebResource("CustomControls.Resources.NumericTextBox.js", "text/javascript")]
namespace CustomControls
{
[ToolboxData(@"<{0}:NumericTextBox ID="""" Text="""" runat=""server""></{0}:NumericTextBox>")]
public partial class NumericTextBox : System.Web.UI.WebControls.TextBox
{
// specific code
}
}
我错过了什么吗?如果我可以使这个属性起作用,FindControl 方法是否可以与自定义控件一起使用?
非常感谢!
编辑:
我的解决方案中有两个项目:
- 一个类库“CustomControls”,其中包含 NumericTextBox.cs
- 还有我的网站。
这是我页面的提取代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using CustomControls;
public partial class MyPage : System.Web.UI.Page
{
protected void AddItem(Enum type, Enum content)
{
string id = (content != null) ? content.ToString() : type.ToString();
...
NumericTextBox _Quantity = new NumericTextBox();
_Quantity.ID = "_Quantity" + id;
_Quantity.Text = "1";
...
}
}
【问题讨论】:
标签: c# asp.net custom-controls