Обратная передача по кнопке отправки

У меня есть страница с 4 таблицами. Первоначально при загрузке страницы отображается 1 и 2 Работает нормально. На Post back (при нажатии кнопки Submit) должно отображаться 3 и 4. Даже это работает нормально (код показан здесь). При повторном щелчке на отправку он должен вызвать updatePaymentInfo () и перенаправить. Есть ли что-то, что нужно написать в качестве условия для вызова UpdatepaymentInfo () , потому что при нажатии на кнопку отправки он принимает в качестве другого постбэка и снова показывает мне 3 и 4.

protected void imgbtnSubmit_Click(object sender, ImageClickEventArgs e)
{
    try
    {
        if (Page.IsPostBack)
        {
            trtest.Visible = false;
            trCCandBilling.Visible = true;
            trtest2.Visible = true;
        }
        else
        {
            UpdatePaymentInfo();
            Response.Redirect(ApplicationData.URL_MERCHANT_ACCOUNT_HOME, true);
        }
    }
 }
1
задан Kamil Budziewski 19 August 2013 в 07:07
поделиться

4 ответа

Я думаю, что самый простой способ сделать это - разместить две кнопки отправки изображения в одном месте. Кнопка A - это та, которая у вас уже есть. Кнопка B - новая, обработчик которой запускает UpdatepaymentInfo и перенаправляет.

Кнопка B сначала невидима, а кнопка A видна. Когда нажимается кнопка A, в дополнение к изменениям видимости вы скрываете кнопку a и показываете кнопку B. Затем, когда они нажимают кнопку B, происходит правильное действие.

Это не так уж и элегантно.

Другим решением может быть сохранение значений на странице для обозначения текущего состояния страницы, которое затем можно проверить нажатием кнопки.

2
ответ дан 2 September 2019 в 21:58
поделиться

Я предполагаю, что imgbtnSubmit_Click обрабатывает событие Click кнопки «Отправить», поэтому этот метод будет вызываться только во время обратной передачи, поэтому условие неверно.

Я бы не стал использовать этот подход. ASP.NET содержит элементы управления, которые поддерживают эти требования. Отметьте MultiView и Wizard. Создайте отдельное представление с таблицами 1 и 2 и кнопкой и другое представление с таблицами 3 и 4 и кнопкой. Кнопка на первом представлении переключит представление, а кнопка на втором представлении вызовет метод и перенаправит.

0
ответ дан 2 September 2019 в 21:58
поделиться

Похоже, у вас возникли проблемы с управлением текущим состоянием вашей страницы. Вы можете попробовать:

  1. Наличие второй кнопки отправки. Он будет стилистически неотличим от первого и будет соответственно скрыт / показан, но будет иметь собственное событие щелчка.
  2. Размещение скрытого значения формы на странице для отслеживания текущего «шага» процесса.
  3. Разделение страницы на две страницы, поскольку с точки зрения пользователя это явно двухстраничный процесс.
  4. Мой личный фаворит, переходите на MVC :) Хотя это понятно, если вы застряли в уже существующем приложении WebForms и просто нет бюджета, чтобы его переписать.
0
ответ дан 2 September 2019 в 21:58
поделиться

Другой возможный способ сделать это - сохранить текущую настройку и добавить к кнопке аргумент команды. По умолчанию у него есть аргумент, который вы проверяете при первом щелчке. Затем, проверяя аргумент команды при первом щелчке, вы показываете и меняете аргумент команды на что-то другое. Таким образом, при следующем нажатии кнопки вы выполняете работу, связанную со вторым аргументом команды. Таким образом можно переключить выполненную работу без необходимости скрывать или показывать новый элемент управления.

0
ответ дан 2 September 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: