我需要創建一個允許用戶輸入HTML標籤的自定義TextBox控件。我添加了一個名爲HtmlEnabled的新屬性,默認爲false。如果它是錯誤的,它將完全像原始文本框一樣;如果它設置爲true,它將調用Server.HtmlEncode來對文本進行編碼。我從來沒有創建一個自定義控件,任何人都可以告訴我我需要做什麼?我需要重寫什麼函數?謝謝。如何創建派生的TextBox控件?
我創建了我的TextBoxEx類,如下所示:我將HtmlEnabled設置爲true時仍然出現驗證錯誤,有人可以告訴我什麼是錯誤的嗎?
namespace WebApplication1
{
[ToolboxData("<{0}:TextBoxEx runat=server></{0}:TextBoxEx")]
public class TextBoxEx : System.Web.UI.WebControls.TextBox
{
public bool HtmlEnabled
{
get
{
return (bool)ViewState["HtmlEnabled"];
}
set
{
ViewState["HtmlEnabled"] = value;
}
}
public TextBoxEx()
{
ViewState["HtmlEnabled"] = false;
}
public override string Text
{
get
{
if (HtmlEnabled)
return HttpUtility.HtmlEncode(base.Text);
else return base.Text;
}
set
{
if (HtmlEnabled)
base.Text = HttpUtility.HtmlDecode(value);
else base.Text = value;
}
}
}
}
這是一個很好的參考http://dotnetguts.blogspot.com/2007/09/web-user-control-in-aspnet.html –