ASP.NET: как остановить переход страницы при использовании AutoPostBack? - PullRequest
0 голосов
/ 16 декабря 2010

Я использую ASP.NET, и в элементе управления Wizard у меня есть переключатели, где, если выбрано «Да», отображается панель, но если выбрано «Нет», панель скрыта.У меня для MaintainScrollPositionOnPostBack установлено значение True, хотя событие ActiveStepChanged меняет его на False, поэтому при нажатии кнопки «Далее» для просмотра следующего шага мастера оно начинается в верхней части страницы.Проблема заключается в том, что после нажатия кнопки «Далее» при первом нажатии радиокнопки она переходит в верхнюю часть страницы (страница сохраняет свое положение при каждом нажатии радиокнопки после первого раза).Как мне остановить его от прыжков в первый раз?

Ответы [ 3 ]

4 голосов
/ 16 декабря 2010

Установите Page.MaintainScrollPositionOnPostBack = true, чтобы сохранить текущую позицию экрана при обратной передаче.

Это проще, чем пытаться сделать это самостоятельно с помощью JavaScript или любым другим способом.

2 голосов
/ 16 декабря 2010

Вы можете остановить полное обновление страницы, поместив свой элемент управления в UpdatePanel

1 голос
/ 07 сентября 2011

Я знаю, что на этот вопрос ответили, но я не могу использовать 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...