2012-03-03 22 views
3

aspxページに「add another」という名前のボタンがあります。ユーザーがボタンをクリックすると、新しいテキストボックスがRequiredFieldValidatorとともに追加されます。検証でコントロールを動的に追加する方法

私はこのようなコードを使用しよう:

protected void btn_Click(object sender, EventArgs e) 
    { 
     TextBox control = new TextBox(); 
     control.Text = ""; 
     control.ID = "txt2"; 
     divMy.Controls.Add(control);//divMy is the container of all the textbox 

     RequiredFieldValidator rfv2 = new RequiredFieldValidator(); 
     rfv2.ID = "rfv2"; 
     rfv.ControlToValidate = control.ID; 
     rfv.ErrorMessage = "bbb"; 
     divV.Controls.Add(rfv2);//divV is the container of all validations.   
    } 

それは動作しません。どのような正しい方法は、この機能を達成するために?

助けていただきありがとうございます。

答えて

0

正常に動作しないということは、何らかのエラーが表示されるか、正しく検証されないことを意味しますか?

これらのコントロールを次回のポストバック後でも表示したい場合は、それらを再作成する必要があります。私は、コントロールを再作成するコードを追加することなく、正しく動作しないと思います。ボックスの数をどこかに保存して(つまり、非表示フィールド)、Page_InitまたはPage_Loadに再作成する必要があります。コントロールのIDもユニークでなければならず、ポストバックの間で変更すべきではありません。

詳細については、http://msdn.microsoft.com/en-us/library/kyt0fzt1.aspxをご覧ください。

関連する問題