UserControlを検証できるようにする
4281 ワード
Web開発では、DateTimeコントロール、HtmlEditorなど、繰り返し使用するコードをUserControlに分割し、後でreuseします.
MSはasp.Netは簡単な検証メカニズムを提供しています.本稿では、この検証をユーザーコントロールに使用することに重点を置きます.
ユーザーコントロールを検証できるようにするには、コントロールのクラスに[ValidationProperty(「SelectID」)というプロパティを追加する必要があります.たとえば、次のようにします.
答えはクライアントに隠しドメインを登録する必要があり、IDはコントロールのClientIDと同じであり、クライアントが更新した後にスクリプトでこのフィールドの値を更新する必要がある.
MSはasp.Netは簡単な検証メカニズムを提供しています.本稿では、この検証をユーザーコントロールに使用することに重点を置きます.
ユーザーコントロールを検証できるようにするには、コントロールのクラスに[ValidationProperty(「SelectID」)というプロパティを追加する必要があります.たとえば、次のようにします.
[ValidationProperty("SelectID")]
public partial class TextBoxAutoComplete : System.Web.UI.UserControl
{
#region
/// <summary>
/// AutoComplete ID
/// </summary>
public string SelectID
{
get
{
return this.AutoComplete_Hidden.Value;
}
set
{
this.AutoComplete_Hidden.Value = value;
}
}
#endregion
#region
protected void Page_Load(object sender, EventArgs e)
{
}
#endregion
}
これで検証できますが、毎回サーバ側に返信して検証し、Pageを使用することがわかります.IsValid、とても不便です!Client Scriptの検証はサポートされていないようですが、クライアントで検証を完了するにはどうすればいいのでしょうか.答えはクライアントに隠しドメインを登録する必要があり、IDはコントロールのClientIDと同じであり、クライアントが更新した後にスクリプトでこのフィールドの値を更新する必要がある.
[ValidationProperty("SelectID")]
public partial class TextBoxAutoComplete : System.Web.UI.UserControl
{
#region
/// <summary>
/// AutoComplete ID
/// </summary>
public string SelectID
{
get
{
return this.AutoComplete_Hidden.Value;
}
set
{
this.AutoComplete_Hidden.Value = value;
}
}
#endregion
#region
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterHiddenField(this.ClientID, this.SelectID); // , ,
}
#endregion
}
以上の内容でクライアント検証が完了します.