几个Postback时常用的javascript方法

有时候选择下拉框自动postback时,由于页面太长,postback后页面自动滚动到最上面,不能保持postback之前的位置,如果在Page_Load调用下面的方法就可以解决这个问题:

/// <summary> 
/// Persist ScrollBar's Position After a PostBack 
/// </summary> 

private   void  PersistScrollPosition() 
        

            System.Text.StringBuilder saveScrollPosition 
= new System.Text.StringBuilder(); 
            System.Text.StringBuilder setScrollPosition 
= new System.Text.StringBuilder(); 

            Page.RegisterHiddenField(
"__SCROLLPOS""0"); 

            saveScrollPosition.Append(
"<script language='javascript'>"); 
            saveScrollPosition.Append(
"function saveScrollPosition() {"); 
            saveScrollPosition.Append(
" document.forms[0].__SCROLLPOS.value = document.body.scrollTop;"); 
            saveScrollPosition.Append(
"}"); 
            saveScrollPosition.Append(
"document.body.οnscrοll=saveScrollPosition;"); 
            saveScrollPosition.Append(
"</script>"); 

            Page.RegisterStartupScript(
"saveScroll", saveScrollPosition.ToString()); 

            
if (Page.IsPostBack) 
            

                setScrollPosition.Append(
"<script language='javascript'>"); 
                setScrollPosition.Append(
"function setScrollPosition() {"); 
                setScrollPosition.Append(
" document.body.scrollTop = " + Request["__SCROLLPOS"+ ";"); 
                setScrollPosition.Append(
"}"); 
                setScrollPosition.Append(
"document.body.οnlοad=setScrollPosition;"); 
                setScrollPosition.Append(
"</script>"); 

                Page.RegisterStartupScript(
"setScroll", setScrollPosition.ToString()); 
            }
 
        }

跳到指定位置:
public   void  MoveTo( string  name)
        
{
            System.Text.StringBuilder sbScript 
= new System.Text.StringBuilder();

            sbScript.Append(
"<script language='JavaScript' type='text/javascript'>/n");
            sbScript.Append(
"<!--/n");
            sbScript.Append(
"document.location = '" + name + "';/n");
            sbScript.Append(
"// -->/n");
            sbScript.Append(
"</script>/n");

            Page.RegisterClientScriptBlock(
"MoveToNext", sbScript.ToString());
        }

 设置焦点到指定控件:

public   static   void  SetFocus(System.Web.UI.Page Page,System.Web.UI.Control control)
        
{
            StringBuilder sb 
= new StringBuilder();
    
            sb.Append(
"/r/n<script language='JavaScript'>/r/n");
            sb.Append(
"<!--/r/n"); 
            sb.Append(
"function SetFocus()/r/n"); 
            sb.Append(
"{/r/n"); 
            sb.Append(
"/tdocument.");
    
            System.Web.UI.Control p 
= control.Parent;
            
while (!(p is System.Web.UI.HtmlControls.HtmlForm)) p = p.Parent; 
    
            sb.Append(p.ClientID);
            sb.Append(
"['"); 
            sb.Append(control.UniqueID); 
            sb.Append(
"'].focus();/r/n"); 
            sb.Append(
"}/r/n"); 
            sb.Append(
"window.onload = SetFocus;/r/n"); 
            sb.Append(
"// -->/r/n"); 
            sb.Append(
"</script>");
    
            control.Page.RegisterClientScriptBlock(
"SetFocus", sb.ToString());
        }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值