C# 从属性在RequiredFieldValidator上设置ValidationGroup不是';t设置正确
我正在尝试从页面上的属性动态设置所需的字段验证器ValidationGroup,但它们没有启动。如果我手动设置字符串,它将激发。我的假设是它没有将属性正确地拉入ValidationGroup。我错过什么了吗C# 从属性在RequiredFieldValidator上设置ValidationGroup不是';t设置正确,c#,asp.net,properties,requiredfieldvalidator,C#,Asp.net,Properties,Requiredfieldvalidator,我正在尝试从页面上的属性动态设置所需的字段验证器ValidationGroup,但它们没有启动。如果我手动设置字符串,它将激发。我的假设是它没有将属性正确地拉入ValidationGroup。我错过什么了吗 <asp:RequiredFieldValidator runat="server" ID="rfvHouseName" ControlToValidate="txtHouseName" ErrorMessage="Please enter a house name/no." Fore
<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; }
}
私有静态字符串_validationGroup=“NewAddress”;
公共虚拟字符串验证组
{
获取{return\u validationGroup;}
设置{u validationGroup=value;}
}
您必须在代码隐藏中设置它
rfvHouseName.ValidationGroup = ValidationGroup;
或者如果你真的想内联使用它,你必须像这样使用它
<asp:RequiredFieldValidator ValidationGroup='<%# ValidationGroup %>'
代码类中的_ValidationGroup和getter与setter的属性是否已隐藏?是。我可以进去。如果我在页面上放置了,那么它将显示预期的字符串。空格是否有帮助,如“出于好奇,DataBind()在这种情况下绑定了什么?如果没有它,
ValidationGroup
的值将不会绑定到验证器。将数据绑定到不在中继器、GridView等中的控件时,该步骤始终是必需的。添加DataBind()有效。正如EmptyWaterHoles所说的,您是否愿意解释一下它的作用以及为什么它会起作用。谢谢,谢谢。就是interesting@MrSmith. 我在回复@EmptyWaterHoles时已经解释了一些。但是,如果您想向控件添加代码隐藏值,aspnet希望您显式绑定它。GridView、Listview等中也存在这种情况,但无论如何都要调用它,否则该控件中将没有数据(GridView1.DataBind()
)。由于DataBind是在GridView中调用的,类似这样的东西会自动绑定Text='
protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}