ASP.NET:如何在使用AutoPostBack时阻止页面跳转?

时间:2010-12-15 22:22:45

标签: asp.net wizard autopostback page-jump maintainscrollpositionon

我正在使用ASP.NET,在向导控件中我有单选按钮,如果选择“是”,则会显示一个面板,但如果选择“否”,则会隐藏面板。我将MaintainScrollPositionOnPostBack设置为True,尽管ActiveStepChanged事件将其更改为False,这样当您单击Next以查看下一个Wizard步骤时,它将从页面顶部开始。问题是,在单击“下一步”后,第一次单击单选按钮时,它会跳转到页面顶部(只有在第一次单击单选按钮后,页面才会保留其位置)。如何阻止它第一次跳跃?

3 个答案:

答案 0 :(得分:4)

设置Page.MaintainScrollPositionOnPostBack = true以在Postback上保持当前屏幕位置。

这比通过JavaScript或其他方式尝试自己更容易。

答案 1 :(得分:2)

您可以将控件放在UpdatePanel

中,以阻止页面完全刷新

答案 2 :(得分:1)

我知道这已经得到了解答,但是我无法使用ajax来处理我正在处理的项目我遇到了类似的问题而且我找到了一个可接受的解决方案。我在页面中有一个用户控件,它也有一个母版页。在用户控件中有一个输入表单,在底部附近有一些触发回发的控件。母版页上的主要内容div使其可滚动(因为它太大)。我发现它的解决方案是将页面焦点设置为对c#代码隐藏中回发触发的事件的控制。 例如:

protected void cbShip_CheckedChanged(object sender, EventArgs e)    
{
    if (cbShip.Checked)
    {
        pnlShip.Visible = true;
        Page.SetFocus(ddlShipCountry);
    }
    else
    {
        pnlShip.Visible = false;
    }
    return;
}