我有一个UserControl包含一个下拉列表和一个文本框。这个用户控件我在我的web应用程序中使用aspx页面。 所以我有问题,如果我在usercontrol中的文本框中放入一些文本,那么应该在运行时启用下拉列表的requiredfieldvalidator,否则应该禁用它。
任何帮助都会非常值得.......
答案 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,然后下拉列表不会触发验证。