asp.net c#在updatepanel中支持滚动条记忆功能

作者:弋江区易采办公设备经营部  发布时间:2017-09-05 12:10:01
asp.net c#在updatepanel中支持滚动条记忆功能

在非ajax页面中,只要在page上设置 MaintainScrollPositionOnPostback="true" 即可进行记忆滚动条位置.

但是在ajax中,这个功能却不能正确工作了,那么我们应当如何让div自动维护滚动条位置呢?


首先在页面上增加 asp:panel控件 ,然后在aspx.cs后台 加入以下方法:


[c#]
protected void DoMaintainScrollPositionForAjax(UpdatePanel updatePanel,Panel panel)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(@"function Panel_SaveScrollPosition(PanelID){
if(document.getElementById(PanelID)!=null){
document.getElementById(PanelID+'_ScrollPosX').value = document.getElementById(PanelID).scrollLeft;
document.getElementById(PanelID+'_ScrollPosY').value = document.getElementById(PanelID).scrollTop;}}
function Panel_RestoreScrollPosition(PanelID){
if(document.getElementById(PanelID)!=null){
document.getElementById(PanelID).scrollLeft = document.getElementById(PanelID+'_ScrollPosX').value;
document.getElementById(PanelID).scrollTop = document.getElementById(PanelID+'_ScrollPosY').value;}}");
ScriptManager.RegisterClientScriptBlock(updatePanel, panel.GetType(), "PanelScrollFunction", sb.ToString(), true);

HiddenField x = new HiddenField();
x.ID = panel.ClientID + "_ScrollPosX";
x.ClientIDMode = panel.ClientIDMode;
panel. Controls.Add(x);

HiddenField y = new HiddenField();
y.ID = panel.ClientID + "_ScrollPosY";
y.ClientIDMode = panel.ClientIDMode;
panel. Controls.Add(y);

string sScript = "Panel_SaveScrollPosition('" + panel.ClientID + "');";
ScriptManager.RegisterOnSubmitStatement(updatePanel, panel.GetType(), panel.ID + "_SavePanelScroll", sScript);

if (Page.IsPostBack)
{
x.Value = Page.Request.Form[x.ClientID];
y.Value = Page.Request.Form[y.ClientID];
sScript = "Panel_RestoreScrollPosition('" + panel.ClientID + "');";
ScriptManager.RegisterStartupScript(updatePanel, panel.GetType(), panel.ID + "_SetPanelScroll", sScript, true);
}
}
protected void DoMaintainScrollPositionForAjax(UpdatePanel updatePanel,Panel panel)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(@"function Panel_SaveScrollPosition(PanelID){
if(document.getElementById(PanelID)!=null){
document.getElementById(PanelID+'_ScrollPosX').value = document.getElementById(PanelID).scrollLeft;
document.getElementById(PanelID+'_ScrollPosY').value = document.getElementById(PanelID).scrollTop;}}
function Panel_RestoreScrollPosition(PanelID){
if(document.getElementById(PanelID)!=null){
document.getElementById(PanelID).scrollLeft = document.getElementById(PanelID+'_ScrollPosX').value;
document.getElementById(PanelID).scrollTop = document.getElementById(PanelID+'_ScrollPosY').value;}}");
ScriptManager.RegisterClientScriptBlock(updatePanel, panel.GetType(), "PanelScrollFunction", sb.ToString(), true);

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:潜江网站建设 http://qianjiang.45qun.com

  • 上一篇:谈武汉企业网站建设:品牌文化价值才是网站建设的核心
  • 下一篇:最后一页
  •