<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
 姓名1:<asp:TextBox id="txtName1"  runat="server"></asp:TextBox>
 <asp:RequiredFieldValidator id="RequiredFieldValidator1" 
runat="server" ErrorMessage="姓名1不能为空" ControlToValidate="txtName1"></asp:RequiredFieldValidator>
 <asp:Button id="Button1"  Text="Button1"></asp:Button>
 <br>
 <br>
 姓名1:<asp:TextBox id="txtName2" runat="server"></asp:TextBox>
 <asp:RequiredFieldValidator id="Requiredfieldvalidator2" 
runat="server" ErrorMessage="姓名2不能为空" ControlToValidate="txtName2"></asp:RequiredFieldValidator>
 <asp:Button id="Button2" Text="Button2"></asp:Button>
</form>
</body>请问怎么处理才能实现以下功能?
按Button1时,让RequiredFieldValidator1 验证 txtName1 不为空,让Requiredfieldvalidator2不验证;
按Button2时,让RequiredFieldValidator2 验证 txtName2 不为空,让Requiredfieldvalidator1不验证;
请问怎么实现啊?现在的问题是:按提交Button,两个验证控件都会有效,这给两个不同提交Button需要处理不同的数据带来麻烦。

解决方案 »

  1.   

    我要用两个Button处理不同的问题
      

  2.   

    除非利用AJAX
    不然不可能,每个BUTTON在执行命令的时候都要提交一次,验证控件是在提交前来验证的
      

  3.   

    http://weblogs.asp.net/skoganti/archive/2004/12/05/275457.aspx
      

  4.   

    你可以把按钮的CausesValidation设置为false然后通过在按钮事件中使用验证控件的Validate
    方法和isValid属性判断,然后写代码操作.
      

  5.   

    楼上的兄弟的方法可以实现!其实单击钮引起验都是因为CausesValidation属性为TRUE 的原因
    你把他的属性设成FLASE 后再单击不会引发验证了!
      

  6.   

    两个button分为不同的组不行吗?
      

  7.   

    两个方法:
    1、自己写javascript 或给控件加客户端事件
       button.Attributes.Add("onclick", "yourjavascript");
    2、在服务器端处理验证 推荐用RegularExpression
      

  8.   

    在同一个form里面,没有办法的。你手动写两个<form runat="server">,然后把你两组无关的东西分别放进去吧,那就应该可以。
      

  9.   

    RequiredFieldValidator1.Validate();
    if(RequiredFieldValidator1.isValid==true)
    {
    .. 
    }
      

  10.   

    谢谢各位的帮助,
    randysbf(Randy)方法比较好。
    问题解决了。
    结帖
      

  11.   

    谢谢 randysbf(Randy)和spray826(蓝色-sky),你们提供的方法是可行的.