在提交按钮上回发

时间:2010-08-20 12:31:19

标签: c# asp.net postback

我有一个包含4个表的页面。最初加载页面时,它显示1&这很好。在回发后(点击提交时),它应显示3&即使那样工作正常(这里显示的代码)。再次单击提交时,必须调用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 个答案:

答案 0 :(得分:2)

我最简单的方法就是在同一个地方放置两个图像提交按钮。按钮A是您已经拥有的按钮B是一个新的按钮,其提交处理程序运行UpdatepaymentInfo并重定向。

当按钮A可见时,按钮B开始不可见。除了可见性更改之外单击按钮A时,您可以隐藏按钮a并显示按钮B.然后,当他们单击按钮B时,会发生正确的事情。

虽然不是那么优雅。

另一种解决方案可能是在页面中存储值以指示当前页面状态,然后您可以在按钮单击时进行检查。

答案 1 :(得分:0)

听起来您无法管理网页的当前状态。你可以尝试:

  1. 有第二个提交按钮。它在风格上与第一个无法区分,并且会相应地隐藏/显示,但会有自己的点击事件。
  2. 在页面上放置隐藏的表单值以跟踪流程的当前“步骤”。
  3. 将页面分成两页,因为从用户的角度来看,这显然是一个两页的过程。
  4. 我个人最喜欢的,转到MVC :)虽然如果你被困在一个已经存在的WebForms应用程序中并且没有预算可以重写它,这是可以理解的。

答案 2 :(得分:0)

我猜imgbtnSubmit_Click处理Submit按钮的Click事件,因此只在回发期间调用此方法,因此条件不正确。

我不会使用这种方法。 ASP.NET包含支持这些要求的控件。检查MultiView和向导。使用表1和表创建单独的视图2和按钮和另一个视图与表3& 4和按钮。第一个视图上的按钮将切换视图,第二个视图上的按钮将调用方法并重定向。

答案 3 :(得分:0)

另一种可能的方法是保持当前设置并向按钮添加命令参数。默认情况下,它会在第一次单击时检查一些参数。然后在第一次单击时检查命令参数,然后执行显示并将命令参数更改为不同的参数。因此,在下一个按钮上单击,您将执行与第二个命令参数关联的工作。因此,无需隐藏或显示新控件即可完成工作。