从Postback返回时,在URI中加载Ta​​rget

时间:2011-08-31 20:31:38

标签: .net postback target

我在网页上有多个细分,用目标标识,如下所示:

<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 个答案:

答案 0 :(得分:1)

我找到了一种方法来做到这一点。不是最迷人的,但它似乎工作。我用这篇文章作为指南: Programmatically scroll to an Anchor Tag

所以,在服务器端代码中,经过处理后,我调用了一个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>

答案 1 :(得分:0)

我会沿着AJAX路线走下去。基本上,使用JavaScript覆盖标签上的点击处理程序,运行对服务器的调用,并将响应中的数据填充到您的。

我是这个任务的jQuery库的粉丝,但是有很多很棒的工具可以提供帮助。

关于使用jQuery执行AJAX的一些教程:

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