2016-04-04 4 views
0

У меня есть два текстовых поля и два сравнительных идентификатора. Я хочу, чтобы он был ниже, чем другой. Оба текстовых поля также должны иметь требуемую проверку.Как сделать CompareValidator пропустить проверку на пустом целевом элементе управления?

Код для одного из полей ввода и его валидатор является

<asp:TextBox runat="server" ID="txtRiesgo_Total_Des" MaxLength="18" Visible="false"></asp:TextBox> 
        <asp:CompareValidator runat="server" ID="compareRiesgoDesdeHasta" ControlToValidate="txtRiesgo_Total_Des" 
         Font-Size="XX-Small" Type="Double" ControlToCompare="txtRiesgo_Total_Has" ErrorMessage="Desde < Hasta<br>" 
         Operator="LessThan" Display="Static"> 
        </asp:CompareValidator> 
+0

Я не знаю, может ли CompareValidator обрабатывать этот сценарий из коробки. Вместо этого вы рассмотрели использование элемента управления CustomValidator? –

+0

Я сделал, но не смог заставить его работать, и, похоже, может быть способ справиться с этим в CompareValidator. – Jmassa

ответ

0

Я согласен, что CustomValidator это лучший подход, поскольку он также был бы хорошей идеей, чтобы проверить, что текст является INT, а не строка.

В вашем ASPX:

<asp:CustomValidator ID="cvCompareInt" runat="server" 
ErrorMessage="Must be lower" 
ControlToValidate="txtRiesgo_Total_Des" 
OnServerValidate="Riesgo_Total_Des_Validate" 
Display="Dynamic" > 
</asp:CustomValidator> 
<asp:TextBox runat="server" ID="txtRiesgo_Total_Des" MaxLength="18" ></asp:TextBox> 
    <asp:TextBox runat="server" ID="txtRiesgo_Total_Has" MaxLength="18"></asp:TextBox> 
    <asp:Button runat="server" id="btnSubmit" Text="submit"/> 

В своем коде позади:

protected void Riesgo_Total_Des_Validate(object source, ServerValidateEventArgs args) 
{ 
    int lowerNum; 
    int higherNum; 
    bool lower = int.TryParse(txtRiesgo_Total_Des.Text, out lowerNum); 
    bool higher = int.TryParse(txtRiesgo_Total_Has.Text, out higherNum); 
    if (lower && higher) 
    { 
    if (lowerNum >= higherNum) 
     { 
      args.IsValid = false; 

     } 

    } 
} 
+1

Спасибо, это то, что я использовал! – Jmassa