2017-10-06 10 views
4

내 필드의 ValidateGroup 속성을 ValidatingGroup에서 동적으로 설정하려고합니다. 그러나 발사하지 않습니다. 문자열을 수동으로 설정하면이 문자열이 실행됩니다. 내 가정은 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'의 값은 Validator에 바인드되지 않습니다. 이 단계는 Repeater, GridView 등에없는 컨트롤에 데이터를 바인딩 할 때 항상 필요합니다. – VDWWD

+0

DataBind()를 추가하면 효과적입니다. EmptyWaterHoles가 말했듯이, 그것이 무엇을하고 왜 그것이 효과가 있는지 설명해 주시겠습니까? 감사. –