我在网页上有多个细分,用目标标识,如下所示:
<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
有办法做到这一点吗?
谢谢!
答案 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/