Отправить на кнопку отправки - PullRequest
1 голос
/ 20 августа 2010

У меня есть страница с 4 таблицами.Первоначально, когда страница загружена, она показывает 1 и 2. Это работает нормально.При отправке сообщения назад (при нажатии кнопки «Отправить») должно отображаться 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);
        }
    }
 }

Ответы [ 4 ]

2 голосов
/ 20 августа 2010

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

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

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

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

0 голосов
/ 20 августа 2010

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

0 голосов
/ 20 августа 2010

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

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

0 голосов
/ 20 августа 2010

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

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