我知道有很多关于此的帖子,但我整天都在寻找这样做。我在这里尝试实现的是单击 GridView 中的一行,然后将页面滚动到该位置,就像 html 中的锚点一样。
这是我用来滚动的链接。我在我的 js 文件中调用了一个函数。这是在我的 GridView 中。
<asp:LinkButton runat="server" OnClientClick="window.scrollTo(0, GetPosition(this))" CommandName="select" ID="InkSelect" Text="SELECT" />
然后,我在我的 js 文件中调用这个函数,像这样链接,以防万一:
<script type="text/javascript" src="~js/monjs.js"></script>
在 monjs.js 中,函数如下:
function GetPosition(element) {
var top = 0;
var e = document.getElementById(element);
while (e.offsetParent != undefined && e.offsetParent != null) {
top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0);
e = e.offsetParent;
}
return top;}
而 Visual Studio 突出显示了这一行:
...... <a onclick="window.scrollTo(0, GetPosition(this));" .....
我尝试了许多其他方法来做到这一点,在 vb 文件中注册一个脚本,在 onclick 属性中硬编码 window.scrollTo(0,100),我没有想法。我试过row.focus,不要提这个。谢谢。