У меня есть страница с 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);
}
}
}
Я думаю, что самый простой способ сделать это - разместить две кнопки отправки изображения в одном месте. Кнопка A - это та, которая у вас уже есть. Кнопка B - новая, обработчик которой запускает UpdatepaymentInfo и перенаправляет.
Кнопка B сначала невидима, а кнопка A видна. Когда нажимается кнопка A, в дополнение к изменениям видимости вы скрываете кнопку a и показываете кнопку B. Затем, когда они нажимают кнопку B, происходит правильное действие.
Это не так уж и элегантно.
Другим решением может быть сохранение значений на странице для обозначения текущего состояния страницы, которое затем можно проверить нажатием кнопки.
Я предполагаю, что imgbtnSubmit_Click обрабатывает событие Click кнопки «Отправить», поэтому этот метод будет вызываться только во время обратной передачи, поэтому условие неверно.
Я бы не стал использовать этот подход. ASP.NET содержит элементы управления, которые поддерживают эти требования. Отметьте MultiView и Wizard. Создайте отдельное представление с таблицами 1 и 2 и кнопкой и другое представление с таблицами 3 и 4 и кнопкой. Кнопка на первом представлении переключит представление, а кнопка на втором представлении вызовет метод и перенаправит.
Похоже, у вас возникли проблемы с управлением текущим состоянием вашей страницы. Вы можете попробовать:
Другой возможный способ сделать это - сохранить текущую настройку и добавить к кнопке аргумент команды. По умолчанию у него есть аргумент, который вы проверяете при первом щелчке. Затем, проверяя аргумент команды при первом щелчке, вы показываете и меняете аргумент команды на что-то другое. Таким образом, при следующем нажатии кнопки вы выполняете работу, связанную со вторым аргументом команды. Таким образом можно переключить выполненную работу без необходимости скрывать или показывать новый элемент управления.