0

我有一个包含一个下拉列表和一个文本框的用户控件。我在我的 web 应用程序中使用的这个用户控件在 aspx 页面内。所以我有一个问题,如果我在用户控件内的文本框中放置一些文本,那么下拉列表的 requiredfieldvalidator 应该在运行时启用,否则它应该被禁用。

任何帮助都将不胜感激......

4

2 回答 2

1

由于您希望RequiredFieldValidator仅当用户在其中输入文本时才处于活动状态,所以TextBox我建议使用 aCustomValidator代替。

void ServerValidation (object source, ServerValidateEventArgs args)
{     
   args.IsValid = TextBox1.Text.Length == 0 || DropDownList1.SelectedIndex != -1; 
}

CustomValidator可以在不设置ControlToValidate属性的情况下使用控件。

一个可能的客户端验证功能:

<script language="javascript">
   <!--
   function ClientValidate(source, arguments)
   {
      var txt = document.getElementById('<%= TextBox1.ClientID %>');
      var ddl = document.getElementById('<%= DropDownList1.ClientID %>');
      if (txt.length == 0)
         arguments.IsValid = true;
      else
         arguments.IsValid = ddl.selectedIndex >= 0;
   }
   // -->
</script>

您必须通过ClientValidationFunction属性在验证器上注册它:

<asp:CustomValidator Id="CustomValidator1" runat="server"
    ClientValidationFunction="ClientValidate" 
    OnServerValidate="ServerValidation">
</asp:CustomValidator>
于 2013-04-03T09:41:19.593 回答
0

将 CausesValidation 属性设置为 false,则下拉列表不会触发验证。

于 2013-04-03T09:33:53.470 回答