• home
    • news & events
    • blog
  • über uns
    • projekte und referenzen
    • partner
    • produkte & technologien
    • offene jobs / stellen
  • dienstleistungen & services
    • software design & architektur
    • software entwicklung
    • beratung / consulting
    • training, kurse und workshops
  • angebote
    • quick-starts
    • trainings, schulungen & kurse
    • workshops
  • kontakt
Wir bieten SharePoint und .NET
Kompetenz, Erfahrung und Know-How:
"1stQuad guaranteed."
Diesen Blog abonnieren
Subscribe in NewsGator Online Add to My AOL
Add to Google Reader or Homepage Add to netvibes

Aktuelle Posts

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 – Teil 8
SharePoint 2010 / PowerShell: Mehrsprachige Taxonomien importieren
State Machine Workflow mit InfoPath Formularen für SharePoint 2010 – Teil 7
State Machine Workflow mit InfoPath Formularen für SharePoint 2010 – Teil 6
State Machine Workflow mit InfoPath Formularen für SharePoint 2010 – Teil 5

Archiv

August 2010 (2)
Juli 2010 (11)
Juni 2010 (13)
Mai 2010 (11)
April 2010 (4)
März 2010 (6)
Februar 2010 (2)
Januar 2010 (6)
Dezember 2009 (4)
November 2009 (13)
Oktober 2009 (17)
September 2009 (2)
Juli 2009 (2)
März 2009 (2)
Januar 2009 (1)

Als Microsoft Certified Partner bietet 1stQuad Solutions SharePoint und .NET Kompetenz, Erfahrung und Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Zürich, Bern, Basel, Schweiz sowie Deutschland und Östereich.
Als Spezialist für kleine und mittlere Unternehmungen (KMU) bietet 1stQuad Solutions SharePoint und .NET Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Zürich, Bern, Basel, Schweiz sowie Deutschland und Östereich.
Mit Kentico CMS bietet 1stQuad Solutions neben SharePoint und .NET CMS-Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Zürich, Bern, Basel, Schweiz sowie Deutschland und Östereich.
© 2010 1stQuad Solutions
Alle Rechte vorbehalten
> Impressum
Wir bieten Microsoft SharePoint und .NET Projekt- und Produkt-Know-how, Kompetenz und Erfahrung für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Zürich, Bern, Basel, Schweiz sowie Deutschland und Östereich.

Blog > Oktober 2009

ASP.NET UpdatePanel verändert Seitentitel

Um Seiten nicht immer ganz neu laden zu müssen werden in ASP.NET und somit auch SharePoint vermehrt die in ASP.NET 3.5 enthaltenen UpdatePanel verwendet. Diese können aber unter Umständen Nebeneffekte verursachen: Der Seiten-Titel kann nach einem asynchronen Postback plötzlich verschwinden oder komische Zeichen darstellen. Dieser Post zeigt, wie dies mit einem Workaround behoben werden kann.

Veröffentlicht am 14.10.2009 06:26:41 von Michael Hofer mit 0 Kommentar(en)

Das System.Web.UI.UpdatePanel, in ASP.NET 3.5 aus dem Assembly System.Web.Extensions stammend, ist eine der Grundkomponenten, wenn man von AJAX-Funktionalitäten spricht: Es erlaubt einem, dass Informationen an den Server gesendet werden und ein (Teil-)Bereich der Seite aktualisiert wird, ohne dass die komplette Seite neu geladen werden muss. Im Hintergrund sorgen komplexe JavaScripts für diese Funktion, der Entwickler muss sich aber um das alles nicht kümmern.

Allerdings kann das UpdatePanel auch unerwartete Nebenwirkungen haben. Eine davon ist, dass der Seitentitel im Browser-Fenster oder im Browser-Tab plötzlich verschwindet oder komische Zeichen anzeigt. Aus irgendeinem mir unbekannten Grund wird im Rahmen der Verarbeitung des asynchronen Request an den Server auch der Seitentitel verändert und mit einem Zeilenumbruch am Anfang "ergänzt", was zu den "komischen" Zeichen und dem Verwschwinden des Seitentitels führt.

Warum dies genau passiert kann ich nicht sage, aber andere haben dieses Problem auch schon dokumentiert: Hier, hier und hier. Die dort dokumentierten Lösungsansätze finde ich allerdings nicht sehr befriedigend, darum habe ich eine andere Lösung entwickelt.

Da ich mich in einer SharePoint Veröffentlichungsseite bewege, habe ich untenstehenden Code in meine MasterPage eingefügt (wie das geht steht hier):

protected override void OnPreRender(EventArgs e) {
   string script = @"
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(FQ_AsyncBeginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(FQ_AsyncEndRequest);";

  ClientScript.RegisterClientScriptBlock(typeof(FQPage), "FQPageScripts", script, true);
}

Ich hänge mit damit in die vom PageRequestManager client-seitig ausgelösten Ereignisse vor respektive nach einem asynchronen Request ein. Alles, was ich nun noch machen muss, ist auf meiner MasterPage auf ein JavaScript-File zu verlinken, welches folgenden Code ausführt:

var FQ_OrigPageTitle; // Used to store the original page title before an asynchronous postback

 

// Called before an asynchronous (Updatepanel) postback is executed.

function FQ_AsyncBeginRequest(sender, args) {

    FQ_OrigPageTitle = document.title;

}

 

// Called after an asynchronous (Updatepanel) postback is executed.

function FQ_AsyncEndRequest(sender, args) {

    document.title = FQ_OrigPageTitle;
}

Der Code ist ziemlich selbsterklärend: Bevor der asynchrone Request ausgeführt wird schreibe ich den aktuellen Seitentitel in eine Variable, nachdem der Request beendet ist setzte ich den Titel wieder wie gehabt.
 

Kommentar
Dieser Blog-Eintrag wurde noch nicht kommentiert.
Kommentar hinterlassen



 Security code
Zurück, Seite drucken