2012-03-03 4 views
3

На странице aspx есть кнопка «добавить другую», если пользователь нажмет кнопку, новое текстовое поле будет добавлено с 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 s элементов управления также должны быть уникальными и не должны меняться между обратными передачами.

Вы можете получить дополнительную информацию об этом здесь: http://msdn.microsoft.com/en-us/library/kyt0fzt1.aspx.

Смежные вопросы