情况是这样的:我有一个带有溢出自动的 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>