gpt4 book ai didi

javascript - Ajax 函数在重定向后不保存滚动位置

转载 作者:太空宇宙 更新时间:2023-11-04 15:34:16 24 4
gpt4 key购买 nike

正如标题所述,我编写了一个 ajax 函数,该函数应该滚动到用户在重定向之前所在的位置。

我为测试场景编写了一个警报,它确实触发了,但滚动一直回到顶部,我在这里做错了什么?

JavaScript:

$.ajax({
type: "GET",
url: "AdminListUsers.aspx?column=Disabled&direc=False&a=chstat&z=+",
success: function loadDoc() {
window.scrollTo(window.pageXOffset, window.pageYOffset);
}
});

C#:

var toggleUrl = "AdminListUsers.aspx?column=" + (IsClicked.FirstOrDefault().Key ?? "Name") + "&direc=" + (IsClicked.FirstOrDefault().Value) + "&a=chstat&q=" + id.ToString() + "&d=" + disabled + "&z=" + Server.UrlEncode(txtSearchFor.Text);

var hl = new HyperLink();
hl.Text = status;
hl.Style.Add(HtmlTextWriterStyle.Color, (disabled ? "red" : "green"));
hl.NavigateUrl = toggleUrl;
hl.Attributes.Add("onclick", "loadDoc();return true;");
cell.Controls.Add(hl);
tr.Cells.Add(cell);

最佳答案

问题是因为它实际上导航到超链接中指定的链接。然后它也尝试执行 ajax 请求。

如果要使用ajax,则无需指定navigateURL,并且脚本需要抑制超链接的默认行为。否则,您将同时获得整页刷新和 jQuery ajax 请求。既然你已经安装了 jQuery,你可以像这样最容易地做到这一点:

C#:

var hl = new HyperLink();
hl.Text = status;
hl.ID = "myLink";
hl.Style.Add(HtmlTextWriterStyle.Color, (disabled ? "red" : "green"));
hl.NavigateUrl = "#";
cell.Controls.Add(hl);
tr.Cells.Add(cell);

JS(使用不显眼的事件处理):

$(document).ready(function() {
$("#<%= myLink.ClientID %>").click(function(event) {
event.preventDefault(); //stop the normal behaviour of the link
$.ajax({
type: "GET",
url: "AdminListUsers.aspx?column=Disabled&direc=False&a=chstat&z=+",
success: function() {
window.scrollTo(window.pageXOffset, window.pageYOffset);
}
});
});
});

这将阻止链接导致整个页面重定向,只允许通过 ajax 加载内容。

注意如果您要在表中创建超链接的多个实例,则需要使用类而不是 ID 来允许 jQuery 定位它。

但是,我会质疑“AdminListUsers.aspx?column=Disabled&direc=False&a=chstat&z=+”实际返回的内容。通常,aspx 页面会返回整个 HTML 页面,包括 <html> , <body>标签等 - 如果您将其放入另一个元素中,例如 <div> ,它会使您的页面无效 - 您无法嵌套 <html>标签。如果您想使用 ajax,则应使用 WebMethod(或其他类型的 Web 服务)仅返回实际应插入到元素中的 HTML。

关于javascript - Ajax 函数在重定向后不保存滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44538810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com