后在Chrome和Safari TabPanel中保持滚动位置我试图在使用以下编码设置焦点以跨多个浏览器回发控件后保持滚动位置。在IE中可以正常工作,但在Chrome,Firefox和Safari中,当我尝试重新设置导致回发的控件时,滚动会跳回顶端。我使用scriptmanager.setfocus(control)方法设置焦点。 注意:我指的是选项卡面板中的垂直滚动条,而不是主页滚动条。如何在设置焦点控制
Private Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender
Dim PostControl As Control = FindControlById(HiddenFieldPostControl.Value)
If PostControl IsNot Nothing Then
Dim sm As ScriptManager = ScriptManager.GetCurrent(Master.Page)
sm.SetFocus(PostControl)
End If
End If
End Sub
//-----------------------------------------------------------------------------------//
// Maintain scroll position in given element or control
//-----------------------------------------------------------------------------------//
var yPos
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
var tb = document.getElementById('MainContent_RightTabContainer_InputTabPanel');
if (tb != null) {
yPos= $get('InputPanel.ClientID').scrollTop;
}
}
function EndRequestHandler(sender, args) {
var tb = document.getElementById('MainContent_RightTabContainer_InputTabPanel');
if (tb != null) {
$get('InputPanel.ClientID').scrollTop = yPos;
}
}
<asp:Panel ID="InputPanel" runat="server" CssClasss="MenuPanel" EnableViewState="False">
...controls
</asp:Panel>
是的,我已经使用MaintainScrollPositionOnPostback但只适用于网页,而不是一个tabpanel内的滚动条从Page_PreRender事件删除sm.SetFocus(PostControl)。谢谢。 – TroyS