HTML имеет входной тип кнопки для сброса всех полей в форме к их начальному состоянию за один шаг: <input type="reset" ... />
.
Существует ли подобный простой способ сбросить все поля формы aspx страницы из кода - позади? Или действительно ли необходимо сбросить все средства управления один за другим с TextBox1.Text=string.Empty
, TextBox2.Text=string.Empty
, и т.д.?
Заранее спасибо!
Обновление:
Контекст является простым Контактом / страница "Send us a message" с 8 asp:TextBoxes на странице (где пользователь вводит имя, адрес, телефон, электронную почту, сообщение, и т.д.). Затем он нажимает, отправляют, обработчик сообщений Onclick в коде - позади посылает электронное письмо некоторому администратору и все поля формы, заполненный пользователь должен быть освобожден и он получает уведомление в маркировке ("сообщение, отправленное blabla..."). Я хочу очистить поля формы, чтобы избежать, чтобы пользователь щелкнул еще раз по, отправляют, и то же сообщение отправляется во второй раз.
Для каждого типа элемента управления нужно написать только форк, если только у одного из элементов управления нет чего-то особенного, что нужно сделать для его сброса.
foreach( var control in this.Controls )
{
var textbox = control as TextBox;
if (textbox != null)
textbox.Text = string.Empty;
var dropDownList = control as DropDownList;
if (dropDownList != null)
dropDownList.SelectedIndex = 0;
...
}
ДОБАВЛЕНИЕ Вы спросили, как очистить элементы управления, даже те, которые похоронены. Для этого вы должны создать рекурсивную процедуру, например, такую:
private void ClearControl( Control control )
{
var textbox = control as TextBox;
if (textbox != null)
textbox.Text = string.Empty;
var dropDownList = control as DropDownList;
if (dropDownList != null)
dropDownList.SelectedIndex = 0;
...
foreach( Control childControl in control.Controls )
{
ClearControl( childControl );
}
}
Итак, вы вызываете эту процедуру, передавая страницу:
ClearControls( this );
Для вашего сценария самый простой способ очистить поля, на мой взгляд, - это отключить ViewState ( EnableViewState = false
) элементов управления, которые должны отображаться пустыми после отправки.
Или, возможно, для всей страницы, если вам не нужно какое-то состояние.