日期:2014-05-17  浏览次数:20450 次

验证控件的判定区域
---源码如下
<table>
  <tr>
  <td>
  <asp:TextBox ID="TextBox1" runat="server" CssClass="input-text"></asp:TextBox>
  <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
  ControlToValidate="TextBox1" ErrorMessage="*"></asp:RequiredFieldValidator>
  </td>
  </tr>
   
  <tr> 
  <td>  
  <asp:FileUpload ID="FileUpload1" runat="server" />
  <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="上传" /> 
  </td>
  </tr>

  <tr> 
  <td> 
  <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="提交" /> 

  </td>
  </tr>
</table>
---源码结束
我的意思是怎么在点 Button2 时 RequiredFieldValidator 验证控件不响应,限在 TextBox1 的值为空时也能完成上传
而在点 Button1 时 RequiredFieldValidator 验证控件需响应,验证TextBox1 是否为空

求高手指点指点

------解决方案--------------------
把需要验证控件放入一个分组,即设置控件的ValidationGroup设置为同一个值
------解决方案--------------------
CausesValidation="False"
------解决方案--------------------
探讨
CausesValidation="False"

------解决方案--------------------
ValidationGroup
------解决方案--------------------
使用验证组可以将页上的验证控件归入特定类别。每个验证组都可以独立于页上的其他验证组进行验证。使用 ValidationGroup 属性指定当 Button 控件回发到服务器时要进行验证的验证组的名称。

只有在 CausesValidation 属性的值设置为 true 时,此属性才有效果。如果为 ValidationGroup 属性指定了属性值,则当 Button 控件回发到服务器时,只会验证属于指定组的验证控件。如果没有为此属性指定属性值而且将 CausesValidation 属性设置为 true,则当该控件回发到服务器时,将对此页上未指定给验证组的所有验证控件进行验证。

无法通过主题或样式表主题设置此属性。有关更多信息,请参见 ThemeableAttribute 和 ASP.NET 主题和外观概述。

参考msdn:
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.button.validationgroup(v=vs.80).aspx