ユーザーが HTML タグを入力できるカスタム TextBox コントロールを作成する必要があります。HtmlEnabled という新しいプロパティを追加しました。デフォルトは false です。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;
}
}
}
}