Как сбросить значения в моих полях ASP.NET? - PullRequest
0 голосов
/ 22 апреля 2010

Текущая форма здесь . Это не полный, и только пара вариантов будет работать.

Выберите «Image CD», затем любое разрешение и нажмите «Добавить в заказ». Заказ будет записан на стороне сервера, но на стороне клиента мне нужно сбросить раскрывающийся список продуктов на «{select}», чтобы пользователь знал, что ему нужно выбрать другой продукт. Это согласуется с идеей, что подвыборы исчезают.

Я не знаю, должен ли я использовать обратную передачу ASP или отправку стандартной формы, и большинство полей необходимо сбросить, когда пользователь добавляет элемент в заказ.

Ответы [ 3 ]

2 голосов
/ 22 апреля 2010

Самым простым средством будет рекурсивная функция, которая разветвляется на тип управления

private void ResetControls( Control control )
{
    if ( control == null)
        return;

    var textbox = control As TextBox;
    if ( textbox != null )
        textbox.Text = string.Empty;

    var dropdownlist = control as DropDownList;
    if ( dropdownlist != null )
        dropdownlist.SelectedIndex = 0; // or -1

    ...

    foreach( var childControl in controlControls )
        ResetControls( childControl );
}

Вы бы вызвали эту функцию в своем событии Load, передав this.(Предполагается, что вы хотите сбросить более одного элемента управления или небольшой список элементов управления).

2 голосов
/ 22 апреля 2010

Я бы использовал Response.Redirect(Request.RawUrl) метод для сброса данных формы со стороны сервера.

Небольшое объяснение: это Шаблон проектирования PRG

Используется, чтобы избежать дублирования формировать представления и разрешать пользовательские агенты вести себя более интуитивно с закладки и кнопка обновления.

Обходной путь для этого вопроса: необходимые данные могут быть сохранены, например, в Session. Это означает, что мы получаем данные с первым POST, помещаем их в хранилище, выполняем перенаправление и получаем обратно.

2 голосов
/ 22 апреля 2010

В событии загрузки страницы на форме вам нужно добавить что-нибудь сималарное к этому:

if (IsPostBack)
{
   //Proccess the order here

   ProductOption.SelectedIndex = 0;
}

Это позволит вам обработать заказ, но затем начать с формы заказа.

...