2017-10-06 9 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のプロパティとゲッターとセッターは、コードのクラス内にありますか? –

+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'の値はバリデーターに束縛されません。この手順は、Repeater、GridViewなどにないコントロールにデータをバインドする場合には常に必要です。 – VDWWD

+0

DataBind()を追加すると機能します。 EmptyWaterHolesが言ったように、あなたはそれが何をしているのか、それがなぜそれを働かせるのかを説明することに気を配りますか?ありがとう。 –

関連する問題