ユーザー入力HTMLタグを許可するカスタムTextBoxコントロールを作成する必要があります。 HtmlEnabledという新しいプロパティを追加しました。デフォルトはfalseです。 falseの場合、元のTextBoxとまったく同じように動作します。 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 –