2009-06-03 9 views
0

ddl.Visible = true(別のフォーム要素イベントから部分的なポストバック/更新パネルで変更される)を変更すると、RequiredFieldValidatorは起動しません。ControlToValidateの可視性が変更されたときにRequiredFieldValidatorが起動しない

注:これは通常の状況でRequiredFieldValidatorを使用する方法に関する質問ではありません。私のフォームには、表示と非表示を切り替えて動的に構築されたカスケード・ドロップダウンがあります。

<asp:DropDownList ID="ddl" Visible="false" AutoPostBack="True" runat="server">                
</asp:DropDownList> 
<asp:RequiredFieldValidator ControlToValidate="ddl" 
ID="RequiredFieldValidator1" 
runat="server" ErrorMessage="Required"></asp:RequiredFieldValidator>  

答えて

2

あなたはそれがDropDownListの値が変更されたときに知っているように、あなたのRequiredFieldValidatorInitialValueプロパティを設定する必要があります。例えば、これらの値とドロップダウンに:

  • Please Select
  • Dog
  • Cat
  • Bird

あなたは

この属性を追加します
InitialValue="Please Select" 

RequiredFieldValidator

値が変更されたかどうかがわからなくても、バリデーターはユーザーが要件を満たしているかどうかを知ることはできません。

+0

InitalValueには、最初のListItemのデフォルトのString.Emptyがあります。私が可視性を切り替えない限り、バリデーターは正常に動作します。 –

+0

関連するコードをすべて投稿できますか?あなたの質問には、InitialValueに設定された値は表示されません。 –

+0

Andrewあなたは正しいです、深く掘り下げて(私の頭が回転しすぎて)、私のデフォルトのListItemの値はString.Emptyではなく0であることがわかりました。私は先に進み、InitalValueを明示的に設定しました。ありがとう –

関連する問題