Antworten auf Benutzermausklicks in Visio Services in SharePoint Server 2010
Zusammenfassung: Informationen zum Hinzufügen von Ereignishandlern zu Mausklickereignissen in einem Visio Web Access-Webpart auf einer Microsoft SharePoint Server 2010 Webparts-Seite mithilfe von ECMAScript (JavaScript, JScript)-Code.
Letzte Änderung: Mittwoch, 12. September 2012
Gilt für: Office 2010 | SharePoint Foundation 2010 | SharePoint Server 2010 | Visio Services | Visual Studio | Visual Studio 2008 | Visual Studio 2010
Bereitgestellt von: Eric Schmidt, Microsoft Corporation
Mithilfe des JavaScript-Objektmodell für Visio Services in Microsoft SharePoint Server 2010 können Sie benutzerdefinierte Meldungen generieren, wenn bestimmte Ereignisse in einem Visio Web Access-Webpart auf einer SharePoint Server 2010Webparts-Seite auftreten. Mithilfe des folgenden Codebeispiels (das auf dem Codebeispiel Mausinteraktion im SharePoint 2010 SDK basiert) können Sie auf einer Webparts-Seite ein benutzerdefiniertes Testfenster erstellen, in dem Meldungen angezeigt werden, wenn bei Shapes in der Visio-Webzeichnung Ereignisse eintreten.
Hinweis
Sie benötigen in SharePoint Server 2010 die entsprechenden Berechtigungen als Seitendesigner, um dieses Codebeispiel einer SharePoint Server 2010Webparts-Seite hinzufügen zu können. Darüber hinaus muss Visio Services auf der SharePoint Server 2010-Website installiert und aktiviert sein.
In diesem Videotutorial wird das Verwenden des JavaScript-Objektmodell für Visio Services zum Erstellen eines Visio Web Access-Webparts auf einer SharePoint Server 2010Webparts-Seite beschrieben, das auf Ereignisse im Browser reagiert. Zum Verwenden des in diesem Videotutorial gezeigten Codebeispiels sollten Sie bereits mit JavaScript vertraut sein. Bevor Sie mithilfe von JavaScript mit einem Visio-Diagramm auf einer SharePoint-Website interagieren, müssen Sie das Diagramm als Visio-Webzeichnung (.vdw) in einer Dokumentbibliothek der Website speichern. So speichern Sie eine Visio-Zeichnung als VDW-Datei auf einer SharePoint-Website
Nachdem Sie Ihre Visio-Webzeichnung auf der SharePoint-Website gespeichert haben, müssen Sie eine SharePoint Server 2010Webparts-Seite erstellen, der das Visio Web Access-Webpart hinzugefügt wird. So erstellen Sie eine Webparts-Seite
Nachdem Sie eine Webparts-Seite auf der SharePoint-Website erstellt haben, können Sie ein Visio Web Access-Webpart der Webparts-Seite hinzufügen und die Visio-Webzeichnung in diesem Webpart öffnen. So fügen Sie einer Webparts-Seite ein Visio Web Access-Webpart hinzu
Ihre SharePoint Server 2010-Seite muss ein Inhalts-Editor-Webpart für die Aufnahme des JavaScript-Codes enthalten. In diesem Codebeispiel stellt das Inhalts-Editor-Webpart zudem eine Anzeigeoberfläche für die Ausgabe Ihres JavaScript bereit. So fügen Sie einer Webparts-Seite ein Inhalts-Editor-Webpart hinzu
Nach dem Hinzufügen des Visio Web Access- und Inhalts-Editor-Webparts zu Ihrer Webparts-Seite können Sie mit dem Erstellen der Datei beginnen, die Ihren JavaScript-Code enthalten soll. So erstellen Sie in Microsoft Visual Studio 2010 eine neue JavaScript-Datei
Sie können den JavaScript-Code nun der JavaScript-Datei (.js) hinzufügen. So fügen Sie JavaScript-Code der JavaScript-Datei hinzu
Nach Beenden der Bearbeitung der JavaScript-Datei und ihrer Speicherung auf der SharePoint-Website müssen Sie die Datei in das Inhalts-Editor-Webpart auf der Webparts-Seite einfügen. So fügen Sie die JavaScript-Datei in das Inhalts-Editor-Webpart ein
Visio Services bietet eine neue Möglichkeit zum Freigeben von Diagrammen und Daten in einer Organisation. Sie können interaktive Diagramme erstellen, bei denen die Benutzer die Visio-Zeichnung und die Daten, auf denen sie basiert, im Browser untersuchen können. Das JavaScript-Objektmodell für Visio Services macht mehrere Mausklickereignisse im Browser verfügbar, die Sie Handlern hinzufügen können. Anzeigen der Ausgabe von Mausklickereignissen Sie können je nach Anforderungen an Ihre Lösung Meldungen, die von Ereignissen in einem Visio Web Access-Webpart generiert wurden, auf verschiedene Weisen anzeigen. Sie können beispielsweise ein alert()-Fenster zum Einblenden einer Popupmeldung nutzen oder mithilfe der Vwa.VwaControl.displayCustomMessage-Methode das Visio Web Access-Webpart durch eine benutzerdefinierte HTML-Meldung ersetzen. Im Codebeispiel, das dieses Videotutorial begleitet, wird im Inhalts-Editor-Webpart zum Anzeigen der Ausgabe der Mausklickereignisse ein Testfenster erstellt. Hierzu wird im Beispiel die document.write-Methode des Inhalts-Editor-Webparts verwendet, um im Webpart ein HTML-Element vom Typ <textarea> zu erstellen. (Das Inhalts-Editor-Webpart enthält wie ein HTML-Element vom Typ <frame> ein document-Objekt, über das Sie auf den Inhalt im Geltungsbereich des Webparts selbst zugreifen können.) Im Beispiel wird ein globaler Verweis auf dieses <textarea>-Element erfasst, wenn die onDiagramComplete-Funktion aufgerufen wird, und die Mausereignishandler können später auf dieses Element zugreifen und die generierte Ausgabe (in das Testfenster) hineinschreiben. Wenngleich das Testfenster zum Anzeigen der Ausgabe von Mausereignissen nicht nötig ist, müssen Sie mithilfe eines Inhalts-Editor-Webparts auf das JavaScript-Objektmodell für Visio Services zugreifen. Das Inhalts-Editor-Webpart fungiert als Container für Ihr Skript und fügt das Skript auf der Seite ein, sobald die SharePoint-Seite geladen wird. Hinzufügen eines Handlers zum AJAX-Ereignis Sys.Application.load Damit Ihr Skript beim Laden der Seite geladen wird, müssen Sie dem AJAX-Ereignis Sys.Application.load einen Handler hinzufügen, der ausgelöst wird, nachdem alle anderen Skripts geladen und die Objekte in der Anwendung erstellt und initialisiert wurden. Im Codebeispiel wird mit dem Sys.Application.load-Ereignis die onApplicationLoad-Funktion aufgerufen. Die onApplicationLoad-Funktion erfasst zunächst einen Verweis auf das Visio Web Access-Webpart, indem ein neues Vwa.VwaControl-Objekt erstellt wird, das der Variablen vwaControl zugewiesen wird. Anschließend registriert die onApplicationLoad-Funktion die onDiagramComplete-Funktion als Handler für das Vwa.diagramcomplete-Ereignis des vwaControl-Objekts. (Das Vwa.diagramcomplete-Ereignis wird ausgelöst, wenn das Diagramm geladen, aktualisiert oder geändert wird.) Erfassen eines Verweises auf das Visio Web Access-Webpart Bevor Sie auf einen Großteil des JavaScript-Objektmodell für Visio Services zugreifen können, müssen Sie zunächst einen Verweis auf die aktuelle Instanz des Visio Web Access-Webpart erfassen, indem Sie eine Instanz der Vwa.VwaControl-Klasse erstellen. Im Codebeispiel in diesem Videotutorial wird der Handler für das AJAX-Ereignis Sys.Application.load zum Erfassen dieses Verweises verwendet, indem eine Instanz der Vwa.VwaControl-Klasse erstellt wird. Die Konstruktormethode für die Vwa.VwaControl-Klasse hat einen Pflichtparameter: die Webpart-ID für das Visio Web Access-Webpart. Diese Webpart-ID im Format WebPartWPQ# ist im id-Attribut des über-übergeordneten <div>-Tags des <div>-Tag enthalten, welches das class="VisioWebAccess"-Attribut für die Webparts-Seite enthält.
Hinweis
Wenn es auf der Webparts-Seite mehrere Visio Web Access-Webparts gibt, sind entsprechende <div>-Tags mit dem class="VisioWebAccess"-Attribut vorhanden.
Es gibt mehrere Möglichkeiten zum Ermitteln der Webpart-ID des Visio Web Access-Webparts:
Im Codebeispiel wird die getVWAWebPartID-Funktion zum Abrufen der Webpart-ID des Visio Web Access-Webparts verwendet. Die Funktion erstellt mithilfe der document.getElementsByTagName-Methode ein Array aller <div>-Tags auf der Seite. (Sie können auch die document.getElementsByClassName-Methode verwenden, wenn Ihr Browser diese unterstützt.) Die Funktion durchläuft alle Elemente im Array, bis das erste Element mit dem class="VisioWebAccess"-Attribut gefunden wird, und gibt den über-übergeordneten Knoten dieses Elements zurück. Erstellen des Handlers für das Vwa.diagramcomplete-Ereignis Im Codebeispiel fügt die onDiagramComplete-Funktion die Handler den Mausklickereignissen im Visio Web Access-Webpart hinzu und initialisiert die meisten globalen Variablen. Die Funktion erstellt Instanzen der Klassen Vwa.Page und Vwa.ShapeCollection (die globalen Variablen vwaPage bzw. vwaShapes), um auf die aktive Seite in der Zeichnung und die Shapeauflistung auf dieser Seite zu verweisen. Diese Funktion definiert auch die textArea-Variable. Nach der Definition der globalen Variablen registriert die Funktion Handler für drei browserinterne Ereignisse des vwaControl-Objekts:
Erstellen von Handlern für die Ereignisse Vwa.shapeselectionchanged, Vwa.shapemouseenter und Vwa.shapemouseleave Die drei Funktionen zum Verarbeiten der browserinternen Mausklickereignisse (onShapeSelectionChanged, onShapeMouseEnter und onShapeMouseLeave) verhalten sich ähnlich. Wenn das Ereignis ausgelöst und die Funktion aufgerufen wird, stellt das Ereignis den Funktionen zwei Argumente bereit: die Quelle des Ereignisses (das Ereignisobjekt) und ein Argument (die Visio-Shape-ID des Shapes, das das Ereignis ausgelöst hat). In beiden Fällen verwendet die Funktion die Vwa.ShapeCollection.getItemById-Methode des vwaShapes-Objekts zum Abrufen des Visio-Shapes (eine Instanz der Vwa.Shape-Klasse) und ruft anschließend den Namen des Shapes durch Aufrufen der Vwa.Shape.getName-Methode ab. Die Funktion gibt anschließend eine Textzeile an das textArea-Element aus, die den Namen des Shapes und das ausgelöste Ereignis enthält. Im Gegensatz zu den beiden anderen Funktionen muss die onShapeSelectionChanged-Funktion auch unterscheiden, wann ein Shape ausgewählt wird und wann die Auswahl aufgehoben wird. Wenn ein Shape in der Zeichnung ausgewählt ist (entweder per Maus oder durch Drücken der TAB-TASTE), muss das Ereignis eintreten, und der Handler muss die Textzeile an das textArea-Element ausgeben. Wenn eine Auswahl jedoch aufgehoben wird (sodass kein Shape ausgewählt ist), tritt das Ereignis weiter ein, doch die Funktion gibt keinen Text an das textArea-Element aus. |
Video anschauen | Dauer: 9:58
|