我有三個文本框:Textbox1,Textbox2,Textbox3驗證文本框的值
我必須檢查所有三個值中的任何值是否相同。
例如:我在一個文本框中有1個值。在其他兩個文本框中我不能有1個。
我正在使用文本框來輸入id。如果我輸入重複的ID(例如,我在Textbox1和Textbox2/Textbox3中輸入1),程序應該給我一個消息。
我有三個文本框:Textbox1,Textbox2,Textbox3驗證文本框的值
我必須檢查所有三個值中的任何值是否相同。
例如:我在一個文本框中有1個值。在其他兩個文本框中我不能有1個。
我正在使用文本框來輸入id。如果我輸入重複的ID(例如,我在Textbox1和Textbox2/Textbox3中輸入1),程序應該給我一個消息。
var uniqueTextcount = (new [] { tb1, tb2, tb3 }).Select(tb => tb.Text).Distinct().Count()
if (uniqueTextCount != 3)
// ARGH!
我不使用linq – user370312 2010-09-14 08:05:08
您可以使用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>
你需要一個CustomValidator。閱讀它。
如果你不使用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做類似的事情。
是的,自定義驗證器是要走的路。更靈活。 – RPM1984 2010-09-14 08:11:39