0

当我在源代码中放置控件的唯一 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"/>

如何更改或修复此问题?由于“$”符号,我遇到了问题。

[更新]要验证的控件(文本框)在用户控件内。

4

2 回答 2

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"

于 2012-07-03T08:18:36.770 回答
0

除了@Adrian 的建议,我认为开头和结尾应该是这样的:

<asp:RequiredFieldValidator>

</asp:RequiredFieldValidator>
于 2012-07-03T08:19:51.473 回答