UserControlを検証できるようにする

4281 ワード

Web開発では、DateTimeコントロール、HtmlEditorなど、繰り返し使用するコードをUserControlに分割し、後でreuseします.
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
}
以上の内容でクライアント検証が完了します.