Мне нужно создать собственный элемент управления TextBox, который позволяет пользователю вводить HTML-теги. Я добавил новое свойство под названием HtmlEnabled, по умолчанию — false. Если оно ложно, оно будет действовать точно так же, как исходное TextBox; если для него установлено значение 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;
}
}
}
}