Загружать страницу с Target в URI при возврате из Postback - PullRequest
1 голос
/ 01 сентября 2011

У меня есть несколько сегментов на веб-странице, идентифицированные с целями, например:

<div id="target1" class="section">
          <h4><a href="#target1">Buildings by Name</a></h4>
          <div>

              // button to call server side function
          </div>
</div>

Таким образом, когда пользователь нажимает «Здания по имени», URI изменяется на http://www.mydomain.com/page.aspx#target1

Мне нужно вызвать функцию на стороне сервера, которая выполнит некоторую обработку. И когда я возвращаюсь из серверного сценария, я хочу перезагрузить страницу с тем же целевым URI http://www.mydomain.com/page.aspx#target1. Прямо сейчас, когда я возвращаюсь с постбэка, URI просто /page.aspx

есть ли способ сделать это?

спасибо!

Ответы [ 2 ]

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

Я нашел способ сделать это.Не самый гламурный, но, похоже, работает.Я использовал этот пост в качестве руководства: Программно выделите тег привязки

Итак, в коде на стороне сервера после обработки я вызвал функцию javascript: ClientScript.RegisterStartupScript (this.GetType(), "scrolling", "scrollToResults ()");

Затем на странице aspx я добавил функцию javascrpt:

<Script>
function scrollToResults() {
         // next 2 lines work on desktop browsers, but not mobile
         // var el = document.getElementById("target1");
         // el.scrollIntoView(true);

         // this bit will work for most mobile browsers
            window.location.href = window.location.protocol + "//" + window.location.host +
                   window.location.pathname + window.location.search +
                   "#target1";
  }
  </script>
0 голосов
/ 01 сентября 2011

Я бы пошел по маршруту AJAX с этим. В основном, используйте JavaScript, чтобы переопределить обработчик кликов для вашего тега, выполнить вызов на сервер и заполнить данные из ответа в свой.

Я фанат библиотеки jQuery для этих задач, но есть множество отличных инструментов, которые могут помочь.

И некоторые уроки по работе с AJAX с jQuery:

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/ http://www.sitepoint.com/ajax-jquery/

...