0
我想創建一個自定義控件:一個數字文本框。 我按照這個教程(http://www.codeproject.com/Articles/42382/Creating-a-Numeric-TextBox-Control),但我面臨一個問題。 我要動態地創建這些控件那樣:動態自定義asp.net控件:ID屬性?
NumericTextBox _Quantity = new NumericTextBox();
_Quantity.ID = "_Quantity" + id;
_Quantity.Text = "1";
不過,據說有在NumericTextBox的「ID」屬性沒有定義。然而,這種控制是文本框的孩子,所以它應該有ID屬性,如文本的一個效果很好...
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";
...
}
}
感謝您的回覆!我使用CustomControls的命名空間,所以我認爲它會工作...我編輯我的第一篇文章與我的網頁的代碼;) –
嗯,如果我複製你的代碼到我的解決方案,它的作品。如果您嘗試在「AddItem」方法中創建簡單的「TextBox」實例,會發生什麼?你有沒有身份證物業?也許你忘了引用一些程序集... – BendEg
是的,我有=(NumericTextBox中實際上沒有ID屬性,但它應該被繼承...我可以用控件的代碼編輯第一篇文章,我添加了CustomControls引用到網站項目,但最奇怪的是,文本屬性工作,但沒有身份證屬性。 –