0

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

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);
}

MaintainScrollPositionOnPostBack="false"不允许添加WebUserControl

解析属性“maintainscrollpositiononpostback”时出错:类型“System.Web.UI.UserControl”没有名为“maintainscrollpositiononpostback”的公共属性。

所以我将它添加到包含它的WebForm页面中WebUserControl

之后PostBackURL是正确的,它包含“#”加ID,但是浏览器没有滚动到它(在Chrome和Firefox上测试),我该如何解决?

4

1 回答 1

0

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

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

于 2013-08-17T18:55:38.123 回答