4

フォームを送信する前に、合計 (txtA + txtB) が 100 より大きいかどうかをテストする必要がありますCustomValidator

<asp:TextBox ID="txtA" runat="server"></asp:TextBox>
<asp:TextBox ID="txtB" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator2" 
                     runat="server" 
                     ErrorMessage="CustomValidator" />

<asp:Button ID="Button1" runat="server" Text="Button" />

ありがとう。

4

3 に答える 3

1

ページにカスタム検証をドロップすると、バリデーターをコントロールにリンクできますが、複数のコントロールに対して複数の検証を実行する場合は、次の属性を含める必要があります。

 OnServerValidate="MyMethodOnServerSide" 

サーバー側でそのメソッドを定義します

protected void MyMethodOnServerSide(object source, ServerValidateEventArgs args)
{
     if (string.IsNullOrEmpty(mytxt1.Text) &&
            string.IsNullOrEmpty(mytxt2.Text))
            {
                args.IsValid = false;
                return;
            }

            args.IsValid = true;
}

args.IsValidプロパティに必要な値を割り当てるだけです。一方、検証はページをロードする前に行われるため、すべてが正しい場合に DB から値を読み取るなどのアクションを実行するボタンをクリックした場合は、そのアクションに次のチェックを含める必要があります。

protected void cmdSearch_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
          LoadDataFromDB();
    }
}

args.IsValidが false の場合も falsePage.IsValidです。お役に立てれば

于 2016-11-29T15:59:55.353 に答える