2013-08-17 39 views
0

我有一个WebUserControl(.ascx)页面包含在WebForm(.aspx)页面中。使用WebUserControl实现MaintainScrollPositionOnPostBack

这个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' 。

因此,我将其添加到包含WebUserControlWebForm页面中。

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

回答

0

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

或者如果它是服务器端控件(如Label),请在您的C#代码中调用其方法.focus()