Я использую следующий код для поддержания позиции прокрутки ListBox на спинах постов.
<script type="text/javascript">
// Helps maintain scroll position on the Specialty list box.
var xPos, yPos;
var prm = Sys.WebForms.PageRequestManager.getInstance();
function BeginRequestHandler(sender, args)
{
var listBox = $get('<%= Special.ClientID %>');
if (listBox != null)
{
xPos = listBox.scrollLeft;
yPos = listBox.scrollTop;
}
}
function EndRequestHandler(sender, args)
{
var listBox = $get('<%= Special.ClientID %>');
if (listBox != null)
{
listBox.scrollLeft = xPos;
listBox.scrollTop = yPos;
}
}
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
</script>
Это прекрасно работает в Firefox 5 или Chrome. Хотя в IE8 / IE9 каждый раз, когда я выбираю элемент в окне списка, он запускает запись назад, а список сохраняет позицию прокрутки. Подвох в том, что после публикации назад, если я прокручиваю все в окне или нажимаю стрелки, положение прокрутки возвращается к началу списка!
Отключение при запуске прокрутки не происходит в Firefox или Chrome.
Спасибо за любую помощь.