0

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

ответ

2

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

+1

следует также отметить, что использовать жерех панель обновления вам нужен менеджер сценария ASP. на странице разрешен только один менеджер сценариев (http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.aspx). он будет обрабатывать все запросы. – m4tt1mus 2010-12-15 22:30:11

3

Набор Page.MaintainScrollPositionOnPostBack = true сохранить текущее положение экрана на Postback.

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

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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^