Очистить все поля формы ASP.net
Есть ли простой способ reset всех полей в форме?
У меня есть около 100 элементов управления в моей форме asp.net и есть кнопки отправки и reset.
Как сделать все значения в полях null, когда пользователь нажимает кнопку reset?
У меня есть много раскрывающихся ящиков, текстовых полей, флажков.
Ответы
Ответ 1
Прокрутите все элементы управления на странице, и если элемент управления является типом TextBox, установите для свойства Text значение String.Empty
protected void ClearTextBoxes(Control p1)
{
foreach (Control ctrl in p1.Controls)
{
if(ctrl is TextBox)
{
TextBox t = ctrl as TextBox;
if(t != null)
{
t.Text = String.Empty;
}
}
else
{
if (ctrl.Controls.Count > 0)
{
ClearTextBoxes(ctrl);
}
}
}
}
Затем, чтобы называть это в событии click следующим образом:
ClearTextBoxes(Page);
Ответ 2
Добавьте это на серверный обработчик кнопки отмены:
Response.Redirect("~/mypage.aspx", true);
Ответ 3
Попробуйте добавить:
<input type="reset" value="Clear" />
в вашу форму.
Ответ 4
Вы можете использовать событие OnClientClick
. Это будет reset весь элемент управления, присутствующий в форме. OnClientClick="this.form.reset();return false;"
Смотрите код:
<asp:Button ID="Reset_Button" runat="server" Text="Reset"
Width="81px" OnClientClick="this.form.reset();return false;" />
Ответ 5
Лучший вариант с моей стороны -
Response.Redirect(Request.RawUrl);
Просто добавьте этот код в кнопку отмены или reset вашего элемента управления asp.net.
Ответ 6
Если вы используете объект asp.net formview, просто используйте myFormView.DataBind();
в вашем событии click reset.
Ответ 7
Или, если вы используете Angular.
Добавьте это в свою кнопку на странице cshtml:
<input type="button" value="Cancel" id="cancel" ng-click="cancel();" />
И это в ваш .js файл:
$scope.cancel = function () {
if (!$('form').dirtyForms('isDirty')) {
$('form').dirtyForms('setClean');
}
else {
$('form').dirtyForms('isDirty', true);
}
var that = this;
var method = that.getUrl('CONTROLLER', 'ACTION', 'id', 'querystring');
window.location = method;