2014-09-21 88 views
1

我想在我的代码后面的函数中设置必需的字段验证器控件的启用属性。下面的代码似乎不工作。我错过了什么?我这样做,所以我可以测试我背后的验证码,而不必去所有需要的字段验证控件来启用财产代码同时某处更改为false等从.ASPX中设置必需的字段验证器页面

  <asp:RequiredFieldValidator ID="rfvRadTxtTimerName" 
       runat="server" ForeColor="Red" 
       ControlToValidate="txtTimerName" 
       ErrorMessage="* Email Address is a required field." 
       ValidationGroup="submitTimer" 
       Enabled=<%# (EnableOrDisableRequiredValidators() == true ? true : false) %> 
       Display="Dynamic" > 
      </asp:RequiredFieldValidator> 


    protected bool EnableOrDisableRequiredValidators() 
    { 
     return false; 
    } 
+0

这哪里是RequiredFieldValidator的位置?例如,GridView,Repeater ... – Win 2014-09-21 23:50:47

+0

你为什么这样做?你为什么不直接在代码隐藏中设置它?在后面的代码中设置一个变量,然后将服务器控件设置为该变量似乎是一种难以实现的方式。 – MikeSmithDev 2014-09-21 23:56:22

+0

你是对的MikeSmithDev。我在.APSX页面设置了它,并不确定为什么我没有在代码背后执行它。 – user272727 2014-09-22 00:02:40

回答

2
<asp:RequiredFieldValidator ID="rfvRadTxtTimerName" 
    runat="server" ForeColor="Red" 
    ControlToValidate="txtTimerName" 
    ErrorMessage="* Email Address is a required field." 
    ValidationGroup="submitTimer" 
    Display="Dynamic"> 
</asp:RequiredFieldValidator> 

背后:

rfvRadTxtTimerName.Enabled = false // true? 

我不是100%确定,但我认为它与数据绑定以及控件值初始化时有关。

顺便说一句,这条线(如果你找到了一种方法,使其工作)

Enabled=<%# (EnableOrDisableRequiredValidators() == true ? true : false) %> 

可以清理

Enabled=<%# EnableOrDisableRequiredValidators() %> 
+0

感谢您的信息。我没有考虑这样做,所以我会改变我的代码。我想我是设置在.APSX页面做比较落后的代码,而是用自己的方式将落后 – user272727 2014-09-22 00:00:43

+0

保护无效的Page_Load代码(对象发件人,EventArgs的){ SetEnablePropertyForRequireFieldValidators工作(); (!的IsPostBack) 如果 { } } 私人无效SetEnablePropertyForRequireFieldValidators() { 布尔enabledOrDisabled = EnableOrDisableRequiredValidators(); rfvRadTxtTimerName.Enabled = enabledOrDisabled; } – user272727 2014-09-22 00:01:27