Подход на стороне сервера
Если вы хотите очистить TextBoxes и DropDownLists при обратной передаче, вы можете пройтись по коллекции Controls
страницы и для каждого элемента управления посмотреть, является ли это TextBox или DropDownList. Вот такая функция в C #:
void ClearInputs(ControlCollection ctrls)
{
foreach (Control ctrl in ctrls)
{
if (ctrl is TextBox)
((TextBox)ctrl).Text = string.Empty;
else if (ctrl is DropDownList)
((DropDownList)ctrl).ClearSelection();
ClearInputs(ctrl.Controls);
}
}
Чтобы использовать это, вы должны позвонить ClearInputs
и передать контрольную коллекцию, которую хотите найти. Чтобы очистить все TextBoxes и DropDownLists на странице, которую вы будете использовать:
ClearInputs(Page.Controls);
Подход на стороне клиента
Альтернативной тактикой было бы использование подхода на стороне клиента. А именно, используйте JavaScript, чтобы проходить через DOM и очищать / сбрасывать текстовые поля и выпадающие списки на этой странице. Следующий JavaScript использует библиотеку jQuery для упрощения вещей:
function clearElements() {
$("input[type=text]").val('');
$("select").attr('selectedIndex', 0);
}
В двух словах, он устанавливает value
всех <input type="text" ... />
элементов на странице в пустую строку и устанавливает атрибут selectedIndex
всех <select>
элементов на странице равным 0. Я создал скрипт на JSFiddle.net, чтобы вы могли опробовать скрипт: http://jsfiddle.net/xs6G9/
Для получения дополнительной информации
Я написал запись в блоге на эту тему с дополнительной информацией и обсуждением. См .: Сброс значений полей формы в ASP.NET WebForm .
Счастливого программирования!