как проверить два элемента управления с помощью одного валидатора - PullRequest
0 голосов
/ 19 февраля 2012

У меня есть два текстовых поля, в которые пользователь должен ввести одно из них. Я хочу использовать валидатор, который действует точно так же, как Требуемый валидатор, например, когда пользователь нажимает Отправить красное предупреждение, написанное органами управления, любые идеиЗаранее спасибо

Ответы [ 4 ]

1 голос
/ 19 февраля 2012

нет встроенного валидатора, который мог бы это сделать, вам придется создать собственный:

, попробовать это :

, или вы можете попробовать использоватькод и использовать событие onclick для проверки текстовых полей, а затем вернуть ошибку внутри диапазона, например:

    protected void Button1_Click(object sender, EventArgs e)
{
    if (TextBox1.Text == null) 
    {
        if (TextBox2.Text == null) 
        {
            errorMsg.InnerText = "Error" //use a span with runat server
        }
    }
}
0 голосов
/ 29 ноября 2016

Использовать элемент управления CustomerValidation

Когда вы удаляете пользовательскую проверку на своей странице, вы можете связать валидатор с элементом управления, но если вы хотите выполнить несколько проверок более чем для одного элемента управления, вам необходимо включить следующий атрибут

 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 требуемое значение. С другой стороны, проверка выполняется перед загрузкой страницы, поэтому, если вы нажали кнопку, которая выполняет действие, такое как чтение значений из БД, если все в порядке, в это действие необходимо включить следующую проверку.

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

Когда args.IsValid ложно, тогда Page.IsValid также ложно. Надеюсь, это поможет

0 голосов
/ 21 февраля 2012

было 2 способа решить эти проблемы, и оба они корректно работали со мной, и я позволил клиенту решить, какой из них он предпочитает,

1 - использовать JavaScript в файле ascx

2 - генерировать красные метки, когда пользователь нажимает кнопку «Отправить», чтобы действовать как проверка на стороне сервера, и именно это я использовал

файл aspx

<asp:Label ID="PhoneLbl" runat="server" Visible="false" style="color:Red">(***) Enter Either Phone Number or Mobile Number</asp:Label>

за кодом

protected void Sc_submit_button_Click(object sender, ImageClickEventArgs e)
{
PhoneLbl.Visible = false;

if (Page.IsValid == true)
    {

            if (txt_phonenumber.Text != string.Empty || txt_mobilenumber.Text != string.Empty)
              {
                    // any code }
              }
           else 
              {
                Sc_submit_button.Enabled = true;
                PhoneLbl.Visible = true;
                MobileLbl.Visible = true;
                txt_phonenumber.Focus();
                return;
              }
    }
}

и эта работа верна со мной !!

0 голосов
/ 19 февраля 2012

Вы можете сделать это с помощью пользовательских валидаторов

Следуйте этому руководству ASP.NET Custom Validator

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...