使用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上测试),我该如何修复它?
您可以在控件的代码中实现自己的get/set属性"maintainscrollpositionpostback",这样它就可以作为控件之外的属性使用。如果设置为true,则执行客户端脚本以调用Div的.scrollIntoView()
方法,将其滚动回视图中。
或者,如果它是一个服务器端控件,比如Label,只需在C#代码中调用它的.focus()
方法。