2014-09-21 82 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