在CSS中使用虚拟全高度列时修复锚点

时间:2010-09-24 05:33:51

标签: c# asp.net html css

当调用Page_Load事件来加载页面时,我如何将页面加载滚动到特定的id。我不能使用命名锚#因为breaks my css

我可以使用javascript的scrollto函数,但我不知道如何从asp.net page_load事件中调用javascript。

我有几个标题,以及一个菜单,用于对每个标题中的内容进行排序。所以每个标题都有一个排序菜单。当我按“最旧”排序Header 2时,我重新加载页面并更改我的sql中的orderby并重新填充每个标题下的转发器。在加载时我希望页面加载已经滚动到标题2.我通常只在重定向上使用#Header2,但我不能使用这个锚方法,因为它破坏了我的代码。

有没有任何简洁的方法来实现这个目标?

css问题与全长列有关,并且在排水沟中有边框。我知道我可以使用图像,但是我的页面的性质要求css是动态的,以考虑不同的宽度并应用适当的背景图像。

1 个答案:

答案 0 :(得分:0)

我最终将<body>代码设置为runat="server"并分配了id="body"。然后我在Page_Load事件中添加了这段代码:

 if (Request.QueryString["view"] != null && Request.QueryString["view"] != "")
 {
      body.Attributes["onload"] = "scroll('" + Request.QueryString["view"] + "');";
 }
 else //Probably redundant, but I have partial postbacks
 {
      body.Attributes.Remove("onload");
 }

它调用这个JS函数:

function scroll(id)
{
    var a = document.getElementById(id);
    if (a != null) {
        window.scrollTo(0, a.offsetTop);
    }
}

所以我没有使用#header2,而是使用view = header2的查询字符串,因为无论如何我都要进行回发。如果我只是想去一个命名锚,我在链接中使用onclick =“scroll('header2')”。