关于在aspx页面内使用用户控件

时间:2013-04-03 09:29:22

标签: asp.net

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

任何帮助都会非常值得.......

2 个答案:

答案 0 :(得分:1)

由于您希望RequiredFieldValidator仅在用户在TextBox中输入文字时才有效,我建议您使用CustomValidator

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

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

可能的clientvalidation-function:

<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>

答案 1 :(得分:0)

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