2016-04-20 5 views
0

Ich bin neu bei Sitecore und im Codebehind meiner Seite setze ich Werte für Google Analytics basierend auf den Informationen, die ich für eine vorher entworfene Seite habe (ich kann die grundlegende Struktur nicht ändern dieser Seiten). Die meisten Felder Ich brauche gesetzt in Sitecores im Content-Editor, so kann ich sie jedoch überKann ich ein Element, das über den Page Editor im Codebehind meiner Seite hinzugefügt wurde, abrufen? (Sitecore, C#)

Sitecore.Content.Item.Fields["fieldname"] 

zugreifen, ich eine Sache brauchen, ist die URL des Logos Bild auf jeder Seite, die mit der eingeführt wird, Seiteneditor. Ist es für mich möglich, Seiten-Editor-Objekte auf der Seite im Codebehind zu erhalten?

+0

tun Wie wird das Logo eingefügt, eine Rendering/Sublayout und anschließend zu einer Datenquelle verknüpft? – jammykam

Antwort

0

Ich gehe von Seiteneditor meinen Sie die Design-Ansicht. Ist dies der Fall, klicken Sie auf die Schaltfläche Quelle, um das Markup anzuzeigen und das Steuerelement zu finden, das die URL enthält. Geben Sie diesem Steuerelement eine eindeutige ID und stellen Sie sicher, dass es das Attribut runat = "server" hat. Danach können Sie auf das Steuerelement im Code zugreifen, indem Sie Me.<uniqueID> verwenden.

0

Nein, Seiteneditor (Experience Editor) funktioniert mit JavaScript, um etwas auf der Seite zu ändern. Dann werden Änderungen, die auf der Seite vorgenommen wurden, auf den Server übertragen und dort angewendet, aber es bezieht sich überhaupt nicht auf das Codebehind Ihrer Seite. Alles wird von benutzerdefinierten Sitecore-Pipelines erledigt. Nach dem Anwenden der Änderungen (Schaltfläche "Speichern") können Sie jedoch beim erneuten Laden der Seite über das Codebehind auf das geänderte Feld zugreifen.

Also, haben Sie zwei Möglichkeiten:

  1. Patch-Sitecores „SaveUI“ Pipeline und fügen Prozessor, um es Änderungen zu bekommen, und mit ihnen etwas zu tun.
  2. Warten nach Änderungen angewendet werden, Seite neu geladen werden und Sie werden geänderte Feld für den Zugriff in Ihrem Code-Behind
1

Google Analytics ist clientseitige Lage sein; Ziehen Sie in Erwägung, clientseitiges Skript zu verwenden, um den Wert der Logo-URL abzurufen. Um dies zu tun, muss Ihr Skript ausgeführt werden, nachdem die Seite geladen wurde.

Wenn Sie jQuery verwenden, könnten Sie so etwas wie dieses

jQuery(document).ready(){ 
    var logoUrl = jQuery('.logo').attr("src"); 
} 
Verwandte Themen