使用WebUserControl实现MaintainScrollPositionOnPostBack

本文关键字:MaintainScrollPositionOnPostBack 实现 WebUserControl 使用 | 更新日期: 2023-09-27 18:27:59

我有一个包含在WebForm(.aspx)页面中的WebUserControl(.ascx)页面。

这个WebUserControl有一个Button,单击它时,一些数据将以HTML形式提取并附加到DIV中。

附加数据有一个ID。

<div id="1234">
</div>

我想做的是让浏览器在获取数据后滚动到这个新添加的div。

因此,我在Page Load方法中添加了以下内容。

if (Page.IsPostBack)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#" + LastIDField.Text + "';", true);
}

WebUserControl 中不允许添加MaintainScrollPositionOnPostBack="false"

分析属性"maintainscrollpositionpostback"时出错:类型"System.Web.UI.UserControl"没有名为的公共属性'maintainscrollpositiononpostback'。

所以我把它添加到WebForm页面中,这个WebUserControl就包含在其中。

PostBack之后,URL是正确的,它包含"#"和ID,但浏览器没有滚动到它(在Chrome和Firefox上测试),我该如何修复它?

使用WebUserControl实现MaintainScrollPositionOnPostBack

您可以在控件的代码中实现自己的get/set属性"maintainscrollpositionpostback",这样它就可以作为控件之外的属性使用。如果设置为true,则执行客户端脚本以调用Div的.scrollIntoView()方法,将其滚动回视图中。

或者,如果它是一个服务器端控件,比如Label,只需在C#代码中调用它的.focus()方法。

相关文章:
  • 没有找到相关文章