проверка флажка для по крайней мере один флажок должен проверяться в asp.net - PullRequest
1 голос
/ 22 февраля 2011

У меня есть форма asp.net с 4 флажками. не флажок списка. эти 4 флажка, имеющие свойство ValidationGroup с тем же именем, говорят «chkValied». Я добавил Custom Validator там. Теперь хочу проверить, по крайней мере, флажок должен быть проверен из этих. что делать?

Ответы [ 3 ]

2 голосов
/ 22 февраля 2011

Вы можете использовать CustomValidator для проверки ввода в коде на стороне клиента или на стороне сервера.

разметка aspx

<asp:CheckBox ID="CheckBox1" runat="server" />
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:CheckBox ID="CheckBox3" runat="server" />
<asp:CheckBox ID="CheckBox4" runat="server" />

<asp:CustomValidator 
      ID="CustomValidator1" 
      runat="server" 
      ErrorMessage="put here error description"
      ClientValidationFunction="clientfunc" 
      OnServerValidate="CheckValidate">
</asp:CustomValidator>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

.cs (code-behind)

protected void CheckValidate(object source, ServerValidateEventArgs args)
    {
        args.IsValid=false;
        if (CheckBox1.Checked)
            args.IsValid = true;
        if (CheckBox2.Checked)
            args.IsValid = true;
        if (CheckBox3.Checked)
            args.IsValid = true;
        if (CheckBox4.Checked)
            args.IsValid = true;

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (IsValid)
        {
            //valid
        }
        else
        {
            //Invalid
        }
    }

код JavaScript

 <script type="text/javascript">
        function clientfunc(sender, args) {
            args.IsValid = false;
            if (document.getElementById("CheckBox1").checked)
                args.IsValid = true;
            if (document.getElementById("CheckBox2").checked)
                args.IsValid = true;
            if (document.getElementById("CheckBox3").checked)
                args.IsValid = true;
            if (document.getElementById("CheckBox4").checked)
                args.IsValid = true;
        }
 </script>
1 голос
/ 22 февраля 2011

Если вы используете пользовательский валидатор, это можно сделать с помощью оператора or:

if (chkBox1.Checked || chkBox2.Checked || chkBox3.Checked)
{
   // At least 1 checkbox was checked.
}

Это относится ко всем языкам (хотя || не является универсальным, все языки имеют его представление).В JavaScript вы бы хотели .Value вместо .Checked.

1 голос
/ 22 февраля 2011
...