Wie aktualisieren wir die Seite in ASP.NET? (Lassen Sie es sich durch den Code nachladen)

StackOverflow https://stackoverflow.com/questions/1206507

  •  05-07-2019
  •  | 
  •  

Frage

Wie aktualisieren wir eine Seite in ASP.NET? (Lassen Sie es sich durch den Code nachladen)

Ich möchte lieber nicht verwenden Response.Redirect (), weil ich weiß nicht, ob die Seite, die ich auf sein wird, da es sich in einer webpart innerhalb Sharepoint innerhalb einer Benutzersteuerung ist.

War es hilfreich?

Lösung

Sobald die Seite an den Client Sie nur zwei Möglichkeiten zwingt eine Auffrischung haben gemacht. Eine davon ist Javascript

setTimeout("location.reload(true);", timeout);

Der zweite ist ein Meta-Tag:

<meta http-equiv="refresh" content="600">

Sie können die Aktualisierungsintervalle auf der Server-Seite festgelegt.

Andere Tipps

In meiner Benutzersteuerung, nachdem die Daten zu aktualisieren ich:

  Response.Redirect(Request.RawUrl);    

Damit ist sichergestellt, dass die Seite neu geladen wird, und es funktioniert von einer Benutzersteuerung in Ordnung. Sie verwenden RawURL und Request.Url.AbsoluteUri keine GET-Parameter zu erhalten, die in der Anforderung enthalten sein können.

Sie wollen wahrscheinlich nicht verwenden. __doPostBack, da viele aspx Seiten unterschiedlich verhalten, wenn ein Postback tun

Dies könnte zu spät sein, aber ich hoffe, es hilft jemand, der für die Antwort sucht.

Sie können mit der folgenden Zeile, das zu tun:

Server.TransferRequest(Request.Url.AbsolutePath, false);

Versuchen Sie es mit Response.Redirect zu vermeiden, wie es die Schritte im Prozess erhöht. Was es tatsächlich tut, ist:

  1. Sendet die Seite mit Umleitung Header zurück
  2. Der Browser leitet auf die Ziel-URL.

Wie Sie sehen können, nimmt das gleiche Ergebnis 2 Fahrten statt 1 Reise.

Versuchen Sie folgendes:

Response.Redirect(Request.Url.AbsoluteUri);

Verwenden Sie Javascript location.reload () Verfahren.

<script type="text/javascript">
  function reloadPage()
  {
    window.location.reload()
  }
</script>

Es gibt verschiedene Verfahren, die Seite in asp.net aufzufrischen wie ...

Java Script

 function reloadPage()
 {
     window.location.reload()
 }

Code hinter

Response.Redirect(Request.RawUrl)

Meta-Tag

<meta http-equiv="refresh" content="600"></meta>

Seite Redirection

Response.Redirect("~/default.aspx"); // Or whatever your page url

Wenn Sie nicht möchten, dass eine vollständige Aktualisierung der Seite zu tun, dann, wie etwa Verpackung, was Sie innerhalb eines Update auffrischen wollen und führen Sie dann einen asynchronen Postbacks?

Ich brauche persönlich die Seite hält Staat zu gewährleisten, so dass die alle Textfelder und andere Eingabefelder ihre Werte behalten. indem Meta-Refresh es wie ein neuer Beitrag ist, ist IsPostBack immer falsch, so dass alle Steuerelemente wieder im initialisierten Zustand befinden. Zur Erhaltung Zustand versetzt diese am Ende Ihrer Page_Load (). Erstellen hakte eine versteckte Schaltfläche auf der Seite mit einem Ereignisse auf, so etwas wie butRefresh mit Event butRefresh_Click (...). Dieser Code setzt einen Timer auf der Seite ein Postback zu schießen wie ein Benutzer auf die Schaltfläche Aktualisieren selbst angeklickt. alle staatlichen und Sitzung beibehalten. Genießen! (P. S. Sie können die Richtlinie im @Page Header EnableEventValidation setzen müssen = „false“, wenn Sie einen Fehler auf Postbacks erhalten.

//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>");

Sie können das nicht tun. Wenn Sie eine Umleitung (oder jede andere Server-Technik) verwenden Sie nie die aktuelle Seite an den Browser senden, nur Umleitung Seiten.

Sie müssen entweder einen Meta-Tag oder JavaScript verwenden, um dies zu tun, so dass Sie die Seite neu zu laden können, nachdem sie eine Zeit lang angezeigt wurde:

ScriptManager.RegisterStartupScript(this, GetType(), "refresh", "window.setTimeout('window.location.reload(true);',5000);", true);

In Ihrem page_load, fügen Sie diese:

Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = -1;
Response.Write("<script>window.opener.location.href = window.opener.location.href </script>");

Sie können zwei Arten verwenden für dieses Problem zu lösen: 1) Nach dem Head-Tag

<head> 
<meta http-equiv="refresh" content="600">
</head>

2) Wenn Sie mit Ihrer Seite markieren nicht den Kopf Sie Javascript verwenden müssen, implementieren

<script type="text/javascript">
  function RefreshPage()
  {
    window.location.reload()
  }
</script>

Ihr Kontakt:

http://gola.vn

Die einzig richtige Art und Weise, dass ich Seitenaktualisierung tun konnte, war durch JavaScript, um viele der Top-NET Antworten für mich im Stich gelassen.

Response.Write("<script type='text/javascript'> setTimeout('location.reload(true); ', timeout);</script>");

Setzen Sie den obigen Code in Click-Ereignis Taste oder überall Sie Aktualisierung der Seite erzwingen wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top