0

情况是这样的:我有一个带有溢出自动的 div,其中包含一个表。包含此 div 的页面被 ajaxed 到主页面中。我想要一个javascript(jquery很好)方法在ajaxed页面加载上运行,它将div滚动到带有id的某个tr。最好的方法是什么?我在下面添加了一个小规模示例。

尝试过

调整 ajax 调用以包含 scrolltoview (url#id) [结果:404 错误对象未找到]

jquery scrollTop [结果:当前正在测试。没有滚动发生]

AJAX 页面

<%@ Page Language="C#" Inherits="APTEIT.scrolltest" %>
<script src="Utilities/Javascript/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#divy").scrollTop($("#25").position().top);
    });
</script>

AJAX CS(只是为了轻松填充表格)

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Web.UI.WebControls;

namespace APTEIT
{
    /*Codebehind for import.aspx*/
    public class scrolltest: Page
    {
        public scrolltest()
        {
        }

        protected void Page_Load()
        {
            Response.Write("<div style=\"overflow:auto;border-style:solid;border-width:2px;border-color:Black;height:200px;width:200px;\" id=\"divy\">");
            Response.Write("<table style=\"border-collapse:collapse\"><tr><th>Number</th><th>Thingy</th></tr>");
            for(int i = 0; i < 100; i++)
            {
                Response.Write("<tr id=\"" + i + "\"><td style=\"border-style:solid;border-width:1px;border-color:black;\">" + i + "</td><td style=\"border-style:solid;border-width:1px;border-color:black;\">thingy" + i + "</td></tr>");
            }
            Response.Write("</table></div>");
        }

    }
}

主页(不包括ajax方法。简单地用ajax页面的异步加载填充“divy2”)

<%@ Page Language="C#" %>
<html>
<head>
<script src="Utilities/Javascript/Utilities.js"></script>
<script src="Utilities/Javascript/jquery-1.7.1.min.js"></script>
</head>
<body>
<script type="text/javascript">
    $(document).ready(function () {
        ajax("scrolltest.aspx", "divy2");
    });
</script>
<div id="divy2">

</div>
</body>
</html>
4

1 回答 1

1
于 2012-06-15T13:26:53.227 回答