如何实现在updatepanel控件更新后跳转到指定页面锚点

问题描述

我设置了一个updatepanel控件,内部的按钮触发这个控件内容的刷新,而非整个页面刷新。现在的问题是,在updatepanel中的button控件执行完成后如何跳转到页面的指定锚点。类似于<ahref="#gotohere">goto</a>这样不用刷新页面就能实现的跳转锚点我试过在button中添加Response.Write("<scriptlanguage='javascript'>location.href='#gotohere';returnfalse;</script>");因为button控件是在updatepanel中的,这个response就不能执行了,这里的response.write是刷新页面后跳转到锚点。<aname="gotohere"></a><!--点击按钮后页面到这个锚点--><asp:ScriptManagerID="ScriptManager1"runat="server"></asp:ScriptManager><asp:UpdatePanelID="UpdatePanel1"runat="server"UpdateMode="always"><ContentTemplate><asp:ButtonID="Button5"runat="server"onclick="Button5_Click"Text="提交"/></ContentTemplate></asp:UpdatePanel>

问题就是如何实现这个button功能执行完之后跳转到指定锚点

解决方案

解决方案二:
看看能不能帮你:例1:UpdatePanel外跳转Response.Write("<script>window.location='line_enter_bury.aspx';</script>");Page.ClientScript.RegisterStartupScript(Page.GetType(),"","<script>window.open('default2.aspx')</script>");Updatepanel内跳转stringscriptStr="location.replace('line_enter_bury.aspx')"ScriptManager.RegisterStartupScript(this.UpdatePanel1,this.GetType(),"click",scriptStr,true);例2:UpdatePanel外提示Response.Write("<script>alert('请选择县区名称!!!');</script>");有刷新Page.ClientScript.RegisterStartupScript(this.GetType(),"","<script>alert('提示信息')</script>");无刷新Updatepanel内提示ScriptManager.RegisterStartupScript(this.UpdatePanel1,this.GetType(),"msg1","alert('请选择中继段编号!');",true);例3:UpdatePanel外选择跳转Response.Write("<script>if(confirm('直埋光缆信息添加完毕!是否继续添加?'))location='line_enter_bury.aspx';elselocation='line_enter.aspx'</script>");Updatepanel内选择跳转ScriptManager.RegisterStartupScript(this.UpdatePanel1,this.GetType(),"click","<script>if(confirm('直埋光缆信息添加完毕!是否继续添加?'))location='页面1';elselocation='页面2'</script>",false);例4:外提示跳转ClientScript.RegisterStartupScript(this.GetType(),"","<script>alert('信息添加完毕!是否继续?');window.location='app_addshebei.aspx';</script>");关闭页面:Response.Write("<scriptlanguage="javascript">window.opener=null;window.close();</script>");刷新父窗体Response.Write("<script>window.opener.location.reload();</script>");提示并关闭窗体Response.Write("<script>alert('信息修改完毕!!!');window.opener=null;window.close();</script>");ScriptManager.RegisterStartupScript参数ScriptManager.RegisterStartupScript(this.Button1,this.GetType(),"alertScript","window.open('default2.aspx');",true);第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。第二个参数为注册脚本控件类型,是控件还是this.GetType()都可以,typeOf(string)也没问题.第三个脚本函数的名字,随便起。第四个是脚本内容。第五个是标明是否再添加脚本标签,如果第四个参数里包含了<script></script>标签,此处则为false,否则为true。第六个,无刷新提示,然后关闭System.Web.UI.ScriptManager.RegisterStartupScript(Me.updatepanel1,Me.[GetType](),"unReport","alert('保存成功!');window.close();",True)在WebConfig中添加<httpHandlers><removeverb="*"path="*.asmx"/><addverb="*"path="*.asmx"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/><addverb="*"path="*_AppService.axd"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/><addverb="GET,HEAD"path="ScriptResource.axd"type="System.Web.Handlers.ScriptResourceHandler,System.Web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"validate="false"/></httpHandlers><httpModules><addname="ScriptModule"type="System.Web.Handlers.ScriptModule,System.Web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/></httpModules>LinkButton2.Attributes.Add("onclick","returnconfirm(""'同意计划'后不能再编辑,这样做吗?"")")
解决方案三:
pageload里加上这个就可以实现跳转锚点功能,但是这个onclick就覆盖了原来的button的onclick功能,如何让两个onclick完美接合呢?button5.Attributes.Add("onclick","location.href='a.aspx';returnfalse;");
解决方案四:
Updatepanel内跳转stringscriptStr="location.replace('line_enter_bury.aspx')"ScriptManager.RegisterStartupScript(this.UpdatePanel1,this.GetType(),"click",scriptStr,true);这个倒是可以跳转页面,但是不能实现跳转到当前页面的锚点呀
解决方案五:
引用3楼zhoutianyu846的回复:

Updatepanel内跳转stringscriptStr="location.replace('line_enter_bury.aspx')"ScriptManager.RegisterStartupScript(this.UpdatePanel1,this.GetType(),"click",scriptStr,true);这个倒是可以跳转页面,但是不能实……

我换成location.replace('#gotohere')这样的话这句语句是可以执行的,可以看到url变成了xxx.aspx#gotohere,但是奇怪的是却并没有真正跳转到这个锚点呀!如果是repalace(‘某个页面.aspx’)是可以成功执行的!我想不明白了!!!为什么#gotohere这个锚点跳转就不行了呢!!!难道锚点跳转就一定要刷新整个页面了么!!!!

时间: 2024-11-18 08:50:44

如何实现在updatepanel控件更新后跳转到指定页面锚点的相关文章

WordPress退出登录后跳转到指定页面的方法

现在退出登录WordPress后台后跳转到登录界面,然后我们再点击一下跳转到首页,这样子很麻烦. 我们需要wordpress推出后跳出到外面指定的界面,那要怎么做呢? 将下面的php代码放到当前主题的functions.php中即可:  代码如下 复制代码 add_filter('logout_url', 'logout_redirect', 10, 2);   function logout_redirect($turl, $redir) {   $redir = 'http://www.11

在线求解,iframe页面中按钮控件点击跳转到父页面

问题描述 protectedvoidButton1_Click(objectsender,EventArgse){Response.Redirect("<scriptlanguage=javascript>parent.window.opener.location='VipMain/KaoQin/MyKaoQin.aspx';</script>");} 解决方案 解决方案二:应该是Response.Write吧..iframe有个属性,你可以通过javascri

WordPress实现退出登录后跳转到指定页面

这个问题也很好解决,将下面的php代码放到当前主题的functions.php中即可:  代码如下 复制代码 add_filter('logout_url', 'ludou_logout_redirect', 10, 2); function ludou_logout_redirect($logouturl, $redir) {   $redir = 'http://www.111cn.net/'; // 这里改成你要跳转的网址   return $logouturl . '&redirect_

多个UpdatePanel控件相互引发刷新的使用

原文:多个UpdatePanel控件相互引发刷新的使用 ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果.其中的UpdatePanel就是设置页面中异 步局部更新区域,它必须依赖于ScriptManager存在,因为ScriptManger控件提供了客户端脚本生成与管理UpdatePanel的功 能.几个重要的属性:    ScriptManager控件的EnablePartialRendering属性:true-实现页面的异步局部更新;false-实

asp.net ajax学习系列功能强大的UpdatePanel控件

ajax|asp.net|控件 先给一个简单的例子,后面给一个比较复杂的例子. 改进后的UpdatePanel使页面部分更新(Partial-Page Updates)实现起来非常容易.要想在已有web页面或新建页面中加入部分更新内容,都十分容易,下面几个步骤:<1>在页面中加入ScriptManager控件.并保证ScriptManager控件的EnablePartialRendering属性值为true.若EnablePartialRendering=false,那么下面所做的对页面部分更

asp.net ajax功能强大的UpdatePanel控件

先给一个简单的例子,后面给一个比较复杂的例子. 改进后的UpdatePanel使页面部分更新(Partial-Page Updates)实现起来非常容易.  要想在已有web页面或新建页面中加入部分更新内容,都十分容易,下面几个步骤: <1>在页面中加入ScriptManager控件.并保证ScriptManager控件的EnablePartialRendering属性值为 true.若EnablePartialRendering=false,那么下面所做的对页面部分更新的任何设置都不能实现.

asp.net/ajax学习系列:功能强大的UpdatePanel控件

先给一个简单的例子,后面给一个比较复杂的例子. 改进后的UpdatePanel使页面部分更新(Partial-Page Updates)实现起来非常容易. 要想在已有web页面或新建页面中加入部分更新内容,都十分容易,下面几个步骤: <1>在页面中加入ScriptManager控件.并保证ScriptManager控件的EnablePartialRendering属性值为true.若EnablePartialRendering=false,那么下面所做的对页面部分更新的任何设置都不能实现.En

ASP.NET AJAX UpdatePanel 控件实现剖析

使用ASP.NET AJAX框架我们可以搭建快速响应.具有丰富的用户体验的AJAX Web应用程序,而该框架的UpdatePanel控件则提供了一种非常简单的方式来实现Web页面的局部更新,我们不需要在每次回发的时候都加载整个页面.   那这个控件是如何实现这种局部刷新的哪,透过其实现机制我们可以更清楚其优缺点,便于我们确定其使用场合.本文将重点阐述ASP.NET AJAX控件UpdatePanel的实现机制.   1. ASP.NET AJAX 简介 ASP.NET AJAX是微软在ASP.N

在atlas里面的UpdatePanel控件中调用javascript,以及updatePanel的一些原理

javascript|控件 在atlas里面有UpdatePanel控件,支持局部更新,只要指名Mode="Conditional",当然,ScriptManager也要设置EnablePartialRendering="true". 局部更新,使用的是xmlHttp.过程如下:1:postback的时候,页面的js把页面上数据postback(是整个页面都要postback的)2:后台接收到请求,开始处理(页面的pageLoad什么的都可以触发了)3:处理完毕之后