Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp:RequiredFieldValidator即使已禁用验证程序,也会在服务器上进行验证_C#_Asp.net_Validation - Fatal编程技术网

C# Asp:RequiredFieldValidator即使已禁用验证程序,也会在服务器上进行验证

C# Asp:RequiredFieldValidator即使已禁用验证程序,也会在服务器上进行验证,c#,asp.net,validation,C#,Asp.net,Validation,我会尽量简短,但这会伤我的头。我有一个带有标签和字段的用户控件。我在运行时将用户控件动态添加到页面。可能有许多用户控件是根据我从数据库获取的数据动态构建的。数据描述标签名称以及文本框是否应填写。。这是必需的。我在主页上有一个提交,它有一个验证组。用户控件上的所有验证程序都有相同的验证组。我希望到目前为止一切顺利 用户控件的文本框有一个RequiredFieldValidator,看起来像这样。默认情况下,验证程序处于启用状态 <asp:TextBox ID="dfControl" runa

我会尽量简短,但这会伤我的头。我有一个带有标签和字段的用户控件。我在运行时将用户控件动态添加到页面。可能有许多用户控件是根据我从数据库获取的数据动态构建的。数据描述标签名称以及文本框是否应填写。。这是必需的。我在主页上有一个提交,它有一个验证组。用户控件上的所有验证程序都有相同的验证组。我希望到目前为止一切顺利

用户控件的文本框有一个RequiredFieldValidator,看起来像这样。默认情况下,验证程序处于启用状态

<asp:TextBox ID="dfControl" runat="server" Text="" ToolTip="ucsAlphanumericEntryDC" Width="95%" CausesValidation="true"/>
<asp:RequiredFieldValidator ID="rfvContol" runat="server" ErrorMessage="Value is required" EnableClientScript="true" 
    ValidationGroup="ValidateContols" ControlToValidate="dfControl" Display="Dynamic" Enabled="true"></asp:RequiredFieldValidator>
到目前为止还不错。这一切都只在客户端验证中对用户控件起作用,并且DisplayRequired设置为true,使验证器处于启用状态

然而,在提交按钮的发布页面上,我已连接到与用户控件相同的验证组,我在提交上检查IsValid,如果为false,我不保存任何内容。但是当页面在客户端上重新呈现时。。我在所有用户控件上都有错误消息,说它们是必需的。。。尽管我禁用了一些不需要的功能。视图状态是我假定为启用的控件的默认状态

通过将代码封装在if(!IsPostBack)中,我还尝试了不使用验证器重新绘制控件

有没有人知道为什么验证器在第一页加载时被禁用,但在回发时却没有被禁用


谢谢Mick

请尝试从服务器设置
Visible=false
,这对我很有用。或者您也可以使用客户端
ValidatorEnable(valid,false)
以禁用验证程序


HTH.

在什么时候调用上面禁用验证程序的代码?回邮时也会打电话吗?嗨,帕特,我在页面加载中设置了它们,但我想我可能碰到了什么。If在标记中将验证器设置为enabled=false作为默认值,我认为它可能没有在一开始就被呈现出来,只是在回发时。我不知道我做了什么,但它现在似乎正在工作..哈哈。。。通常情况下,开发人员…在修复时发出呜呜声,但不知道如何处理:-)谢谢。。。我不知道有什么好的一面。。。好小费
       if (!DisplayRequired)
        {
            rfvContol.EnableClientScript = false;
            rfvContol.Enabled = false;
            dfControl.CausesValidation = false;
        }