Я использую ASP.NET, и в элементе управления Wizard у меня есть радиокнопки, где, если выбрано «Да», отображается панель, но если выбрано «Нет», панель скрыта. У меня установлено значение MaintainScrollPositionOnPostBack равным True, хотя событие ActiveStepChanged меняет его на False, чтобы при нажатии кнопки «Далее», чтобы увидеть следующий шаг мастера, он начнется в верхней части страницы. Проблема заключается в том, что после нажатия кнопки «Далее» при первом нажатии переключателя она переместится вверху страницы (страница сохраняет свое положение при каждом нажатии переключателя после первого раза). Как мне остановить прыжок в первый раз?ASP.NET: как остановить страницу от прыжка при использовании AutoPostBack?
ответ
Вы можете остановить страницу делать полное обновление, поставив свой контроль в UpdatePanel
Набор Page.MaintainScrollPositionOnPostBack = true
сохранить текущее положение экрана на Postback.
Это проще, чем пытаться сделать это самостоятельно с помощью JavaScript или любых других средств.
Я знаю, что на это был дан ответ, но я не могу использовать 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;
}
следует также отметить, что использовать жерех панель обновления вам нужен менеджер сценария ASP. на странице разрешен только один менеджер сценариев (http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.aspx). он будет обрабатывать все запросы. – m4tt1mus 2010-12-15 22:30:11