如何在ASP.NET中刷新页面?(让它通过代码重新加载自身)
我宁愿不使用Response.Redirect(),因为我不知道我是否会进入该页面,因为它位于共享点内webpart内的用户控件内。
如何在ASP.NET中刷新页面?(让它通过代码重新加载自身)
我宁愿不使用Response.Redirect(),因为我不知道我是否会进入该页面,因为它位于共享点内webpart内的用户控件内。
Answers:
将页面呈现给客户端后,您只有两种方式可以强制刷新。一是Javascript
setTimeout("location.reload(true);", timeout);
第二个是元标记:
<meta http-equiv="refresh" content="600">
您可以在服务器端设置刷新间隔。
Server.TransferRequest。
在我的用户控件中,更新数据后,我执行了以下操作:
Response.Redirect(Request.RawUrl);
这样可以确保页面被重新加载,并且可以通过用户控件正常运行。您使用RawURL,而不Request.Url.AbsoluteUri保留任何可能包含在请求中的GET参数。
您可能不想使用:__doPostBack,因为许多aspx页面在执行回发时的行为会有所不同。
这可能会晚了,但是我希望它对正在寻找答案的人有所帮助。
您可以使用以下行执行此操作:
Server.TransferRequest(Request.Url.AbsolutePath, false);
尝试避免使用Response.Redirect它,因为它增加了过程中的步骤。它的实际作用是:
如您所见,相同的结果需要2趟而不是1趟。
.Text在一个TextBox或.Visible的状态Button。
试试这个:
Response.Redirect(Request.Url.AbsoluteUri);
使用javascript的location.reload()方法。
<script type="text/javascript">
function reloadPage()
{
window.location.reload()
}
</script>
有多种方法可以刷新asp.net中的页面,例如...
Java脚本
function reloadPage()
{
window.location.reload()
}
背后的代码
Response.Redirect(Request.RawUrl)
元标记
<meta http-equiv="refresh" content="600"></meta>
页面重定向
Response.Redirect("~/default.aspx"); // Or whatever your page url
我个人需要确保页面保持状态,以便所有文本框和其他输入字段都保留其值。通过执行元刷新,它就像一条新帖子一样,IsPostBack始终为false,因此所有控件都再次处于初始化状态。要保留状态,请将其放在Page_Load()的末尾。在连接了事件的页面上创建一个隐藏按钮,类似于带有事件butRefresh_Click(...)的butRefresh。这段代码在页面上设置了一个计时器,以触发回发,就像用户自己单击刷新按钮一样。保留所有状态和会话。请享用!(PS,如果您在回发时收到错误,则可能需要将指令放入@Page标头EnableEventValidation =“ false”中。
//tell the browser to post back again in 5 seconds while keeping state of all controls
ClientScript.RegisterClientScriptBlock(this.GetType(), "refresh", "<script>setTimeout(function(){ " + ClientScript.GetPostBackClientHyperlink(butRefresh, "refresh") + " },5000);</script>");
您可以使用2种方法解决此问题:1)在head标签之后
<head>
<meta http-equiv="refresh" content="600">
</head>
2)如果您的页面没有head标签,则必须使用Javascript来实现
<script type="text/javascript">
function RefreshPage()
{
window.location.reload()
}
</script>
我的联络人: