2017-10-06 59 views
4

我想設置我需要從外地然而他們沒有解僱我的網頁上有一個屬性動態驗證器的ValidationGroup。如果我手動設置字符串,它會觸發。我的假設是它不會將該屬性正確地拉入ValidationGroup。我錯過了什麼嗎?從屬性上的RequiredFieldValidator的ValidationGroup設置不正確設置

<asp:RequiredFieldValidator runat="server" ID="rfvHouseName" ControlToValidate="txtHouseName" ErrorMessage="Please enter a house name/no." ForeColor="Red" ValidationGroup="<%#ValidationGroup%>"><i class="fa fa-star requiredFieldStar"></i></asp:RequiredFieldValidator> 
<asp:TextBox ID="txtHouseName" runat="server" MaxLength="50" CssClass="form-control" /> 

private static string _validationGroup = "NewAddress"; 

public virtual string ValidationGroup 
{ 
    get { return _validationGroup; } 
    set { _validationGroup = value; }   
} 
+0

是_ValidationGroup的屬性以及代碼類中的getter和setter的背後? –

+0

是的。我可以進入它。如果我在頁面上放置一個<%= ValidationGroup%>,它會顯示預期的字符串。 –

+0

將空間幫助像這樣的「<%#%的ValidationGroup>」 –

回答

2

你必須將其設置在後面的代碼

rfvHouseName.ValidationGroup = ValidationGroup; 

或者,如果你真的想在線使用它,你必須使用這樣

<asp:RequiredFieldValidator ValidationGroup='<%# ValidationGroup %>' 

但是第二一個工作,你必須每次都從代碼後面調用DataBind()

protected void Page_Load(object sender, EventArgs e) 
{ 
    DataBind(); 
} 
+0

只是出於好奇什麼呢的DataBind()綁定在這種情況下? –

+0

沒有它ValidationGroup'的'的值將不會被綁定到驗證。結合數據時不在中繼器的控制,等等的GridView – VDWWD

+0

添加的DataBind即步驟是必要的()的工作。正如EmptyWaterHoles所說,你是否願意解釋它做了什麼以及爲什麼這會使它工作。謝謝。 –