Как обновить страницу в ASP.NET? (Позволить ей перезагрузиться самостоятельно с помощью кода)
Я бы не хотел использовать Response.Redirect(), потому что я не знаю, будет ли страница, на которой я буду находиться, так как она находится внутри пользовательского элемента управления внутри webpart внутри sharepoint.
В моих пользовательских элементов управления, после обновления данных я делаю:
Response.Redirect(Request.RawUrl);
Это гарантирует, что страница перезагружается, и она отлично работает из пользовательского элемента управления. Вы используете RawURL и не просить.URL-адрес.AbsoluteUri сохранить любой GET-параметрами, которые могут быть включены в запрос.
Вы, наверное, Дон'т хотите использовать: `__doPostBack, поскольку многие страницы aspx ведут себя по-разному, когда делаю обратную передачу.
После того, как страница отображается в клиенте у вас есть только два способа принудительное обновление. Один-это JavaScript
setTimeout("location.reload(true);", timeout);
Второй мета-тег:
<meta http-equiv="refresh" content="600">
Вы можете задать интервалы обновления на стороне сервера.
Это может быть поздно, но я надеюсь, что это помогает кто-то, кто ищет ответ.
Вы можете использовать следующую строку, чтобы сделать это:
Server.TransferRequest(Request.Url.AbsolutePath, false);
Старайтесь избегать использования `ответ.Редирект как это увеличивает шаги в процессе. Что это на самом деле:
Как видим, тот же результат за 2 поездки, а не 1 поездку.
Попробуйте это:
Response.Redirect(Request.Url.AbsoluteUri);
Использовать JavaScript'ы местоположение.перезагрузка() метод.
<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
Если вы не хотите делать полное обновление страницы, то как насчет того, чтобы обернуть то, что вы хотите обновить, внутри UpdatePanel и затем сделать асинхронный постбэк?
Мне лично нужно, чтобы страница хранит государство, так что все текстовые поля и другие поля ввода, сохраняют свои значения. делая мета обновить ее's, как новый пост, IsPostBack всегда ложно, поэтому все элементы управления снова в инициализированном состоянии. Сохранить государство в конце в(). создать скрытую кнопку на странице с событием подключили, что-то вроде butRefresh с butRefresh_Click событие(...). Этот код устанавливает таймер на странице, чтобы огонь обратную передачу просто как пользователь нажал себе кнопку Обновить. все государственные и сессия сохраняется. Наслаждайтесь! (P. S. Вы, возможно, потребуется ввести директиву в @заголовок страницы EnableEventValidation=то"ложные" Если вы получаете сообщение об ошибке на обратной передачи.
//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>");
В в
, добавьте это:
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = -1;
Вы не можете этого сделать. Если вы используете перенаправление (или любую другую технику сервера), вы никогда не отправите браузеру реальную страницу, только страницы перенаправления.
Для этого нужно использовать метатег или JavaScript, чтобы можно было перезагрузить страницу после ее отображения в течение некоторого времени:
ScriptManager.RegisterStartupScript(this, GetType(), "refresh", "window.setTimeout('window.location.reload(true);',5000);", true);
Единственный правильный способ, что я мог бы сделать обновление страницы через JavaScript, многие из топ .Сетка ответов не для меня.
Response.Write("<script type='text/javascript'> setTimeout('location.reload(true); ', timeout);</script>");
Поставить выше код в событие нажатия кнопки или в любом месте вы хотите принудительно обновить страницу.
Response.Write("<script>window.opener.location.href = window.opener.location.href </script>");
Вы можете использовать 2 способа решить эту проблему:
<head>
<meta http-equiv="refresh" content="600">
</head>
<script type="text/javascript">
function RefreshPage()
{
window.location.reload()
}
</script>
Мой контакт: