【发布时间】:2017-11-13 14:48:32
【问题描述】:
我尝试了许多不同的方法来解决我的问题,但似乎都没有成功。我基本上使用 asp.net 超链接激活和停用用户,问题是一旦你这样做,页面会因为它创建的回发而向上滚动,所以如果你有一个列表,向下滚动会很烦人1000 个用户。这是我一直在尝试但没有成功的代码!
// I use this variable for navigating the url for my hyperlink
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(); //These hyperlinks are the same
hl.Text = status;
hl.Style.Add(HtmlTextWriterStyle.Color, (disabled ? "red" : "green"));
hl.NavigateUrl = toggleUrl;
hl.Attributes.Add("onclick", "saveScroll(this);return true;");
cell.Controls.Add(hl);
tr.Cells.Add(cell);
cell = new TableCell();
cell.Width = new Unit("10%");
cell.Controls.Add(new LiteralControl("<nobr>"));
var linkbtn = new HyperLink //These hyperlinks are the same
{
//Here as you can see are my attributes for the hyperlink
NavigateUrl = toggleUrl,
Width = 16,
Height = 16,
CssClass = disabled ? "user-status-disabled" : "user-status-enabled"
};
linkbtn.Attributes.Add("id", "aButton_" + id);
ScriptManager.RegisterStartupScript(Page, typeof(Page), "ScrollToADiv", "setTimeout(scrollToDiv, 1);", true); // Not working
linkbtn.Attributes.Add("onclick", "window.scrollTo(0, location.hash);"); // Not working either
cell.Controls.Add(linkbtn);
cell.Controls.Add(new LiteralControl(" "));
【问题讨论】:
-
P.S.您如何激活和停用用户、您使用了哪些控件以及如何执行回发。 2017 只是一个建议,所以鼓励自己并开始使用 AJAX Get/Post 从/向服务器获取/发送数据。这样可以避免不必要的回发和简单操作的延迟。
-
这是旧代码,而且代码很多,所以我没有时间重组整个项目。
标签: javascript c# jquery asp.net hyperlink