Перейти к определенному номеру строки на странице, используя #, но не в URL - PullRequest
0 голосов
/ 25 июня 2009

У меня есть набор записей с сотнями строк. когда пользователь щелкает строку, он уходит куда-то еще, а затем снова перенаправляется на страницу со строками. Я хочу, чтобы страница начиналась с той строки, на которую нажали.

У меня есть строки с номером строки, соответствующим каждому номеру записи из базы данных.

//some record set

while not RS.eof

<a name="<%=line%>">
//other stuff

Rs.movenext
   Line = line + 1
wend

когда вы вводите '#' в URL и номер, он идет на номер строки. Тем не менее, моя проблема заключается в том, что URL-адрес запрещен. У меня номер строки хранится как переменная Session, которая происходит после того, как они изначально покидают страницу. Как я могу заставить страницу перейти на номер строки, используя переменную сеанса, а не URL?

Ответы [ 3 ]

2 голосов
/ 25 июня 2009

Если вы ничего не можете сделать с URL, ваша лучшая (единственная) ставка - это JavaScript на клиенте.

function scrollTo(row) {
  window.location.hash = "#" + row;
}

И назовите это, например, body.onload. Поместите значение вашей переменной сеанса в вызов функции.

2 голосов
/ 25 июня 2009

Насколько я знаю, имена якорей - это особенность браузера. Но, возможно, есть некоторые библиотеки Javascript, которые могут прокручиваться вниз до имени привязки без необходимости использования URL.

Вот SO Вопрос о том, как программно прокрутить вниз до определенного места.

Я думаю, что это также работает, но я не проверял это

window.location.hash = "#anchorname";
1 голос
/ 25 июня 2009

Я не думаю, что вам нужны якоря для этого. Вы можете зафиксировать положение прокрутки как переменную запроса post и установить ее обратно с помощью JavaScript при загрузке страницы.

Второй вариант в посте не относится к asp.net.
http://www.4guysfromrolla.com/articles/111704-1.aspx

...