2010-09-14 117 views
0

我有三個文本框:Textbox1,Textbox2,Textbox3驗證文本框的值

我必須檢查所有三個值中的任何值是否相同。

例如:我在一個文本框中有1個值。在其他兩個文本框中我不能有1個。

我正在使用文本框來輸入id。如果我輸入重複的ID(例如,我在Textbox1和Textbox2/Textbox3中輸入1),程序應該給我一個消息。

+0

是的,自定義驗證器是要走的路。更靈活。 – RPM1984 2010-09-14 08:11:39

回答

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

我不使用linq – user370312 2010-09-14 08:05:08

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做類似的事情。