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が提案したこととは別に、BeginningとEndingは次のようになります。

<asp:RequiredFieldValidator>

</asp:RequiredFieldValidator>
于 2012-07-03T08:19:51.473 に答える