3

ASCXを配置したページから検証したいユーザーコントロール(ASCX)内にドロップダウンリストがありますが、ControlToValidateをドロップダウンリストに設定すると、ページはそれが可能であると文句を言います。見つかりません。ヘルプ/提案をありがとう。

4

3 に答える 3

5

ユーザーコントロールのパブリックプロパティを使用してドロップダウンリストを公開します。

public DropDownList DropDownToValidate
    {
        get
        {
            return ddlTest;
        }
    }

次に、公開されたドロップダウンのUniqueIDを使用して、ユーザーコントロールをドロップしたページのページ読み込みで検証するようにコントロールを設定します。

protected void Page_Load(object sender, EventArgs e)
{

    RequiredFieldValidator1.ControlToValidate = WebUserControl1.DropDownToValidate.UniqueID;
}
于 2009-07-09T13:38:29.430 に答える
3

これを行うために私が知っている唯一の方法は、ユーザーコントロールクラスでこれを行うことです。


[ValidationProperty("Foo")]
public class MyUserControl : UserControl
{
     public string Foo
     {
          get { return(yourDropDown.SelectedValue); }
     }
}

次に、ページでユーザーコントロールを次の場所に配置します。


<asp:RequiredFieldValidator ControlToValidate="yourUserControlName" runat="server" ErrorMessage="You are required to make a selection" />

まったく同じことではありませんが、それが私が知っている唯一の回避策です。

于 2009-07-09T13:33:24.757 に答える
1

ユーザー コントロールを検証する最善の方法は、ユーザー コントロール内にパブリック メソッドを用意することだと思います。

public void Validate() {
  reqRecipientName.Validate();
  reqRecipientMail.Validate();
  valRecipientMail.Validate();
  reqRecipientPhone.Validate();
}

ここでreqRecipientNamereqRecipientMail... はバリデータの ID です (ascx にも含まれています)。そして、サブミットメソッド呼び出し内のページでcontrolId.Validate(); これは私にとってはうまくいきます。

于 2009-12-12T10:27:25.357 に答える