当我在源代码中放置控件的唯一ID时出现此错误。以下是源代码。
<ucPopupMember:PopupMember ID="PopupMember_MemberID"
runat="server"
TextBoxMaxLength="12"
ValidationGroup="SpkrSetupGroup"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator_MemberID"
runat="server"
ErrorMessage="Member ID is required"
Text="*"
CssClass="errorlabel"
ValidationGroup="SpkrSetupGroup"
Display="Dynamic"
ControlToValidate="ctl00$ContentPlaceHolder_MainContent$TabContainer1$TabPanel_Entry$PopupMember_MemberID$TextBox_MemberCode"/>
如何更改或修复此问题?由于“$”符号,我遇到了问题。
[更新]要验证的控件(文本框)位于用户控件内。
答案 0 :(得分:1)
您需要为ControlToValidate属性指定控件的“服务器”ID。两个控件都需要存在于同一个容器中。
在PopupMember控件中添加验证器:
<asp:RequiredFieldValidator ID="RequiredFieldValidator_MemberID"
runat="server"
ErrorMessage="Member ID is required"
Text="*"
CssClass="errorlabel"
ValidationGroup="SpkrSetupGroup"
Display="Dynamic"
ControlToValidate="MemberCode"/>
我想总是需要会员代码,所以你不需要再做任何事情了。
但是如果有时不需要MemberCode,请在PopupMember控件的代码后面添加一个属性。
public bool MemberRequired
{
set {RequiredFieldValidator_MemberID.Visible = value;}
}
默认是必需的。如果您在默认情况下不需要它,请使用标记Visible="false"
答案 1 :(得分:0)
除了@Adrian所建议的,我认为开始和结束应该是这样的:
<asp:RequiredFieldValidator>
</asp:RequiredFieldValidator>