我需要创建一个允许用户输入 HTML 标记的自定义 TextBox 控件。我添加了一个名为 HtmlEnabled 的新属性,默认为 false。如果它是假的,它将完全像原来的文本框;如果设置为 true,它将调用 Server.HtmlEncode 对文本进行编码。我从不创建自定义控件,谁能告诉我我需要做什么?我需要覆盖什么功能?谢谢。
我创建了我的 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;
}
}
}
}