2010-09-14 3 views
0

У меня есть три текстовых поля: textBox1, TextBox2, Textbox3Проверка текстового поля значение

я должен проверить, если какие-либо из значений одинаковы во всех трех.

ex: У меня есть значение 1 в одном текстовом поле. Я не могу иметь 1 в двух других текстовых блоках.

Я использую текстовые поля для ввода идентификаторов. Если я введу дубликат id (например, я введу 1 в Textbox1 и Textbox2/Textbox3), программа должна дать мне сообщение.

+0

yep, пользовательский валидатор - это путь. большая гибкость. – RPM1984

ответ

0
var uniqueTextcount = (new [] { tb1, tb2, tb3 }).Select(tb => tb.Text).Distinct().Count() 
if (uniqueTextCount != 3) 
    // ARGH! 
+0

Я не использую linq – user370312

2

Вы можете использовать CustomValidator с дополнительным ClientValidation-Function.

Что-то вроде этого:

<script type="text/javascript" > 
    function ClientValidate(sender, args){ 
     var Textbox1=document.getElementById('<%=Textbox1.ClientID%>'); 
     var Textbox2=document.getElementById('<%=Textbox2.ClientID%>'); 
     var Textbox3=document.getElementById('<%=Textbox3.ClientID%>'); 
     if(Textbox1!=null && Textbox2!=null && Textbox3!= null){ 
      args.IsValid = !(Textbox1.value==Textbox2.value || Textbox1.value==Textbox3.value || Textbox2.value==Textbox3.value); 
     } 
     return; 
    } 
</script> 
2

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

string tb1 = Textbox1.Text.Trim(); 
string tb2 = Textbox2.Text.Trim(); 
string tb3 = Textbox3.Text.Trim(); 

if(tb1 == tb2 || tb1 == tb3 || tb2 == tb3) 
{ 
    // Do something 
} 

Если вам нужно сделать это на клиенте, вы можете использовать 3 CompareValidators сделать подобную вещь ,

Смежные вопросы