BasicData-Controls
Dieser Bereich ist nur verfügbar, wenn das Feature "SiteEdit" in den Portaleinstellungen aktiviert wurde. Ist dies bei Ihnen nicht der Fall, können Sie dieses Kapitel überspringen.
Sofern kundenspezifische Controls in Eingabemasken für Objekte eingebunden sind, werden sie in der linken Leiste gelistet. Der Name wird dabei aus dem Namespace generiert. Bei Auswahl eines Controls wird unter dem Reiter "IMPLEMENTIERUNG" Javascriptcode bereitgestellt, der für die Leiste mit den Objekteigenschaften (nur aktiv im Siteedit-Modus) angepasst werden kann (die contentXX-seitigen Mechanismen zum Laden und Speichern der Objektdaten greifen nur für Controls, die in contentXXL implementiert sind).
Verwenden Sie entweder keine kundenspezifische angepassten Eingabemasken (siehe hier), oder verwenden kundenspezifische angepasste Eingabemasken, haben aber keine eigenen Controls eingebaut), können Sie dieses Kapitel überspringen.
Abb.: BasicData-Controls-Verwaltung
In diesem Screenshot war folgendes kundenspezifische Control in einer basicdata.ascx-Datei eingebunden:
<%@ Register TagPrefix="xxl" TagName="customControl" Src="~/portaldata/1/modules/CustomControl.ascx" %>
<xxl:customControl id="usersetting10" runat="server"></xxl:customControl>
Die innere Struktur dieses Controls ist hierbei belanglos. Da das Control auf das Datenbankfeld usersetting10 gemappt ist, übernimmt contentXXL alles Nötige. Für das Siteedit muss lediglich die Leiste mit den Objekteigenschaften angepasst werden. Zu diesem Zweck wird unter dem Reiter "IMPLEMENTIERUNG" ein vordefiniertes und gut kommentiertes Javascript-Gerüst angezeigt und kann editiert werden. Die generierten kundenspezifischen Javascript-Dateien werden unter ~\portaldata\<portalid>\siteedit\customscripts\ abgelegt und im Siteedit-Modus anstelle der Standard-Dateien von contentXXL angezogen (in der linken Bedienleiste erscheint das Control dann blau markiert anstatt schwarz).
Im vordefinierten Javascript wird exemplarisch eine Textbox erzeugt und der Leiste mit den Objekteigenschaften mit der Bezeichnung "custom" hinzugefügt (Codezeile inputLabel.text("custom");). Sie müssen dieses Javascript entprechend Ihren Anforderungen anpassen. Dabei können natürlich auch andere ASP.NET-Controls wie Dropdownlisten und Checkboxen Verwendung finden.
Wenn Ihr Control eine komplexere Datenstruktur aufweist, müssen Sie diesen Teil des Scripts anpassen:
var obj = {};
obj["CustomIdentifier"] = "customValue"
contentXXL_ContentEditController.pushElementState(globalId,languageId,moduleId,"custom-identifier", obj);
Zusätzlich müssen Sie einen eigenen Webservice zum Speichern bereitstellen und das beforeSave- bzw. afterSave-Event in der BasicData-Verwaltung benutzen.
Unter dem Reiter "BASISDATEN" können Sie eine Beschreibung Ihrer Anpassungen hinterlegen. Der Control-Typ wird automatisch vergeben.