Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ressourcen zur Anzeige der Ressourcensteuerung (Resource Control Display Configuration, RCDC) sind benutzerdefinierte Ressourcen, mit denen Sie steuern können, wie andere Ressourcen im Microsoft Identity Manager 2016 SP1 (MIM)-Datenspeicher auf der Benutzeroberfläche (UI) für den Endbenutzer angezeigt werden. Jede RCDC-Ressource enthält eine XML-Konfigurationsdatei, die Sie ändern können, um UI-Text und UI-Steuerelemente hinzuzufügen, zu ändern oder zu entfernen. Während MIM 2016 SP1 mehrere Standard-RCDC-Ressourcen bereitstellt, können Sie auch benutzerdefinierte RCDC-Ressourcen für benutzerdefinierte Ressourcen erstellen. Weitere Informationen zur Verwendung der RCDC-Benutzeroberfläche im FIM-Portal finden Sie unter Einführung in das Konfigurieren und Anpassen des FIM-Portals in der FIM-Dokumentation.
Bekannte Probleme
Der Standardwert in vielen RCDC-Steuerelementen wird nicht unterstützt.
In dieser Version wird das Festlegen von Standardwerten in Steuerelementen in einem Ressourcensteuerelement nicht unterstützt, mit Ausnahme des Optionsfeld-Steuerelements. Sie können dieses Problem für ein Dropdownfeld umgehen, indem Sie einen Standardwert angeben, der keinem Wert zugeordnet ist, um zu erzwingen, dass der Benutzer die Auswahl ändern kann. Um dieses Problem mit anderen Steuerelementen zu umgehen, müssen Sie einen Autorisierungsworkflow verwenden, um während der Übermittlung der Anforderung einen Standardwert zu liefern.
Grundstruktur
Die XML-Daten für eine RCDC-Ressource bestehen aus einem einzelnen ObjectControlConfiguration XML-Element.
Hinweis
Das vollständige XSD-Schema finden Sie in Anhang A: Standardmäßiges XSD-Schema.
Im Folgenden sehen Sie das XSD-Schema für das ObjectControlConfiguration--Element:
<xsd:element name="ObjectControlConfiguration"\>
<xsd:complexType\>
<xsd:sequence\>
<xsd:element ref="my:ObjectDataSource" minOccurs="0" maxOccurs="32"/>
<xsd:element ref="my:XmlDataSource" minOccurs="0" maxOccurs="32"/>
<xsd:element ref="my:Panel"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:TypeName"/>
<xsd:anyAttribute processContents="lax" namespace="http://www.w3.org/XML/1998/namespace"/>
</xsd:complexType>
</xsd:element>
Das ObjectControlConfiguration--Element enthält die folgenden Elemente:
ObjectDataSource-: Dieses Element gibt den TypeName einer Datenquellenklasse an, die von der Resource Control (RC) verwendet wird. Eine Beschreibung und die Schemadefinition finden Sie im folgenden Abschnitt zu Datenquellen in diesem Dokument. Ein ObjectControlConfiguration--Element kann bis zu 32 Knoten des ObjectDataSource--Elements enthalten.
XmlDataSource-: Dies ist eine einfache Datenquelle, die am häufigsten verwendet wird, um den Entwurf einer Zusammenfassungsseite anzugeben. Eine Beschreibung und die Schemadefinition finden Sie im folgenden Abschnitt zu Datenquellen in diesem Dokument. Ein ObjectControlConfiguration-: Element kann bis zu 32 Knoten des XmlDataSource--Elements enthalten.
Panel-: Der Administrator kann das Layout der RCDC-Seite anpassen, indem Elemente innerhalb der Panelelemente geändert werden. Weitere Informationen finden Sie im Abschnitt "Panel" weiter unten in diesem Dokument. Ein ObjectControlConfiguration--Element darf nur ein Panel-Element aufweisen.
Ereignisse: Administratoren können keinen benutzerdefinierten CodeBehind bereitstellen, dieses Feature ist eingeschränkt. Dies ist das Ereignis, das ein Panel oder ein Steuerelement basierend auf einer Zustandsänderung ausgeben kann. Weitere Informationen finden Sie im Abschnitt "Ereignisse" weiter unten in diesem Dokument. Ein ObjectControlConfiguration--Element kann optional ein Event-Element enthalten. Im Allgemeinen wird die Verwendung von benutzerdefinierten Events nicht unterstützt, es sei denn, sie werden speziell in späteren Verbesserungen entwickelt.
Datenquellen
Microsoft Identity Manager verwendet Datenquellen als Möglichkeit, Daten an UI-Komponenten zu binden. Dadurch wird die Trennung der Daten von der Präsentationsebene erleichtert. Es gibt zwei Arten von Datenquellen in den RCDC-Ressourcenkonfigurationsdaten: ObjectDataSource- und XmlDataSource-.
ObjectDataSources eine Microsoft .NET-Klasse angeben, die die Daten für das RC bereitstellt. Es gibt einen festen Satz verfügbarer Typen von ObjectDataSources, vorausgesetzt, der Administrator kann beim Erstellen von RCDCs verwenden.
XMLDataSources eine einfache Möglichkeit zum Strukturieren von XML-basierten Daten bieten und von Administratoren verwendet werden können, um benutzerdefinierte Daten bereitzustellen. Die XML-Daten müssen direkt im RCDC angegeben werden, es sei denn, Sie verwenden die integrierte vordefinierte XML-Struktur. Die integrierte XML-Struktur wird zum Generieren von Zusammenfassungsseiten im RC verwendet.
Im RCDC können Sie diese Datenquellen an Attribute der UI-Steuerelemente binden, die im RCDC angegeben sind, um die Benutzeroberfläche zu generieren.
ObjectDataSource-Elemente
Microsoft Identity Manager stellt die allgemeinen Datenquellentypen in der folgenden Tabelle bereit, die für alle Ressourcentypen verfügbar sind (mit Ausnahme der Angabe).
| Typname | BESCHREIBUNG | Bidirektionale Bindung | Bindungssyntax |
|---|---|---|---|
| PrimaryResourceObjectDataSource | Dies stellt die FIM 2010-Ressource dar, die erstellt, bearbeitet oder angezeigt wird. Der Pfad in der Bindungszeichenfolge ist der Attributname. Der Ressourcentyp wird durch das TargetObjectType-Attribut des RCDC und nicht im RCDC angegeben. ConfigurationData-Attribut. | Ja |
[AttributeName] Wert des Durchnamens angegebenen Objektattributes. |
| PrimaryResourceDeltaDataSource | Diese Datenquelle erstellt den Delta-XML-Code, der den ursprünglichen Zustand und den aktuellen Zustand der FIM 2010-Ressource vergleicht. Die generierte Delta-XML wird vom RC-Zusammenfassungssteuerelement verwendet, um die Benutzeroberfläche für die Anforderung zu rendern, die der Benutzer übermittelt. | Nein |
DeltaXml Wird mit dem Zusammenfassungssteuerelement verwendet, um das Delta anzuzeigen. |
| PrimaryResourceRightsDataSource | Diese Datenquelle stellt die Inlinerechte für jedes Attribut der FIM 2010-Ressource bereit. Dadurch kann der RC im Voraus ermitteln, welche Berechtigungen der Benutzer für dieses Attribut hat, und anschließend die Benutzeroberfläche für dieses Attribut entsprechend rendern. | Nein | [AttributeName] |
| SchemaDataSource | Diese Datenquelle kann verwendet werden, um auf schemabezogene Informationen zuzugreifen, z. B. Anzeigename, Beschreibung, ob das Attribut erforderlich ist, sowie Ressourcentypinformationen. | Nein |
[AttributeName].Required booleschen Wert, der angibt, ob das Attribut einen gültigen Wert aufweisen muss. [AttributeName].DisplayNameString Wert, der den Anzeigenamen der Bindung angibt. [AttributeName].DescriptionString Wert, der die Beschreibung der Bindung angibt. [AttributeName].StringRegexString Wert, der den String Regex einer Bindung angibt. [AttributeName].DisplayName [AttributeName].Description [AttributeName].IntegerValueMinimum [AttributeName].IntegerValueMaximum [AttributeName].LocalizedAllowedValues |
| DomainDataSource | Diese Datenquelle stellt eine Aufzählung von Domänen basierend auf den Domänenkonfigurationsressourcen bereit. Diese Datenquelle kann nur in RCDCs verwendet werden, die sich auf Gruppenressourcen und Benutzerressourcen beziehen. | Ja | Domäne |
Im Folgenden sehen Sie einen BEISPIEL-RCDC-Codeausschnitt, der drei Datenquellen an das UocTextBox-Steuerelement bindet, um das Description-Attribut einer Gruppe zu bearbeiten:
<my:ObjectDataSource my:TypeName="PrimaryResourceObjectDataSource" my:Name="object" my:Parameters=""/>
<my:ObjectDataSource my:TypeName="SchemaDataSource" my:Name="schema"/>
<my:ObjectDataSource my:TypeName="PrimaryResourceRightsDataSource" my:Name="rights"/>
<my:Control my:Name="Description" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=Description.DisplayName}" my:RightsLevel="{Binding Source=rights, Path=Description}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required}"/>
<my:Property my:Name="Rows" my:Value="3"/>
<my:Property my:Name="Columns" my:Value="60"/>
<my:Property my:Name="MaxLength" my:Value="450"/>
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=Description, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
XMLDataSource-Element
Mithilfe eines XMLDataSource--Elements können Sie benutzerdefinierte Daten angeben, die der RCDC für eine bestimmte Ressource verwenden kann. In diesem Fall müssen die XML-Daten im RCDC angegeben werden. Alternativ kann diese Datenquelle verwendet werden, um auf eine integrierte XML-Datenstruktur zu verweisen, um die Benutzeroberfläche für Zusammenfassungsseiten zu rendern. Sie steuern, welche Art von XMLDataSource- verwendet werden soll, wenn Sie ihn im RCDC definieren.
| Typname | BESCHREIBUNG | Bidirektionale Bindung | Bindungssyntax |
|---|---|---|---|
| XMLDataSource- | Die Datenquelle stellt XML-Daten dar. Die Daten können entweder in XSL- oder eingebetteten XSL-Formaten vorliegen:
|
Nein |
Xpath[;namespaces], wobei Xpath ein gültiger XML-XPath ist, um die erforderliche Notiz auszuwählen, am häufigsten "/" (Stamm).
namespaces ist eine optionale Liste mit präfix=URI-Zeichenfolgen. Die Zeichenfolge wird nach Bedarf durch Semikolons getrennt, damit der Xpath mit dem namespaced XML arbeitet. |
| ReferenceDeltaDataSource- | Die Datenquelle stellt Deltas von mehrwertigen Referenzattributen dar. Sie wird nur für RCDC für Gruppe und Set verwendet. Obwohl die Datenquelle nicht auf Gruppen oder Sets beschränkt ist, müssen Codeänderungen am RCDC-Host vorgenommen werden, um solche Deltas zu übermitteln. Derzeit sind "Group" und "Set" die einzigen Hosts, die diese Datenquelle erkennen. |
Ja |
[AttributeName].Add, wobei [AttributeName] ein Referenzattribute darstellt und die zurückgegebenen Daten die Delta-Ergänzungen sind.
[AttributeName].Remove, wobei [AttributeName] ein Referenzattribute darstellt und die zurückgegebenen Daten die Delta-Entfernungen sind. DeltaXml- |
| RequestDetailsDataSource- | Die Datenquelle stellt das RequestParameter-Attribut von Request-Objekten dar. Der Parameter legt die maximale Anzahl von Attributwerten fest, die pro mehrwertigem Attribut angezeigt werden sollen. Sie wird nur in RCDC für Anforderung verwendet. <my:ObjectDataSource my:TypeName="RequestDetailsDataSource" my:Name="requestDetails" my:Parameters="1000" /> |
Nein | DeltaXml |
| RequestStatusDataSource- | Die Datenquelle stellt das RequestStatusDetails Attribut von Request-Objekten dar. Sie wird nur in RCDC für Anforderung verwendet. | Nein | DeltaXml |
Verwenden Sie zum Definieren einer benutzerdefinierten XML-Datenquelle folgendes XML:
<my:XmlDataSource my:Name="MyCustomData" >
%Insert custom, properly formatted XML data here%
</my:XmlDataSource>
Um das integrierte Zusammenfassungssteuerelement XSL zu verwenden, definieren Sie die Datenquelle wie folgt:
<my:XmlDataSource my:Name="summaryTransformXsl" my:Parameters="Microsoft.IdentityManagement.WebUI.Controls.Resources.DefaultSummary.xsl" />
Wenn Sie einen RCDC für einen benutzerdefinierten Ressourcentyp erstellen, können Sie diese Methode verwenden, um automatisch eine Zusammenfassungsseite für diese benutzerdefinierte Ressource zu rendern.
Im Folgenden sehen Sie ein Beispiel zum Erstellen einer Zusammenfassungsregisterkarte im RCDC mithilfe des PrimaryResourceDeltaDataSource-Elements mit dem XMLDataSource--Element mithilfe der integrierten XSL:
<my:ObjectDataSource my:TypeName="PrimaryResourceDeltaDataSource" my:Name="delta" />
<my:XmlDataSource my:Name="summaryTransformXsl" my:Parameters="Microsoft.IdentityManagement.WebUI.Controls.Resources.DefaultSummary.xsl" />
<my:Grouping my:Name="summaryGroup" my:Caption="Summary” my:IsSummary="true">
<my:Control my:Name="summaryControl" my:TypeName="UocHtmlSummary" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="ModificationsXml" my:Value="{Binding Source=delta, Path=DeltaXml}" />
<my:Property my:Name="TransformXsl" my:Value="{Binding Source=summaryTransformXsl, Path=/}" />
</my:Properties>
</my:Control>
</my:Grouping>
Alternativ kann der Benutzer das zuvor angegebene XmlDataSource-Element durch das folgende Format ersetzen, um ein angepasstes Layout einer Zusammenfassungsseite zu definieren. Als Referenz ist die standardmäßige FIM 2010 Summary XSL in Anhang B: Default Summary XSL, weiter unten in diesem Dokument enthalten.
<my:XmlDataSource my:Name="summaryTransformXsl">
Insert valid XSL code here
</my:XmlDataSource>
Schema für Datenquellen
Das folgende XSD-Schema generiert die beiden Arten von Datenquellen:
<xsd:element name="ObjectDataSource">
<xsd:complexType>
<xsd:sequence/>
<xsd:attribute ref="my:TypeName"/>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="XmlDataSource">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:complexType>
</xsd:element>
Eventelement
Ein Event-Element definiert den sich ändernden Zustand eines Steuerelements. Die Erweiterbarkeit dieses Features ist begrenzt, da Sie keine angepasste Funktion (Handler) schreiben können, um zu definieren, was das Verhalten nach dem Auslösen eines Ereignisses ist. Dasselbe Event-Element kann im Panel-Element verwendet werden. Weitere Informationen finden Sie im Abschnitt "Panel" weiter unten in diesem Dokument.
Im Folgenden sehen Sie das XSD-Schema für das Event-Element:
<xsd:element name="Events">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Event" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Event">
xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Handler"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
Ein -Ereignis- ist ein leeres Element und weist die folgenden Attribute auf:
Name: Dies ist der eindeutige Name eines Ereignisses. Das einzige unterstützte Ereignis im ObjectControlConfiguration- ist das Load-Ereignis. Dieses Ereignis wird ausgelöst, wenn die Seite zum ersten Mal geladen wird.
Handler: Dies ist der eindeutige Name eines Handlers. Wenn das Ereignis ausgelöst wird, wird in der Regel eine Programmmethode aufgerufen, um die Änderung des Zustands des Steuerelements zu behandeln. Die folgenden Fälle werden nicht unterstützt:
- Entfernen eines vorhandenen Handlers aus einem vorhandenen Steuerelement.
- Erstellen eines neuen Handlers.
- Anfügen eines Handlers an ein vorhandenes oder neues Steuerelement.
Nachfolgend sehen Sie ein Beispiel für ein Events-Element:
<my:Events>
<my:Event my:Name="Load" my:Handler="OnLoad"/>
</my:Events>
Panel-Element
Das Panel--Element ist das Kernelement in einem RCDC-Layout. Im Folgenden sehen Sie das XSD-Schema für das Panel-Element:
<xsd:element name="Panel">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Grouping" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:DisplayAsWizard"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:AutoValidate"/>
</xsd:complexType>
</xsd:element>
Das Panel--Element enthält ein wiederkehrendes Element, Gruppierung. Weitere Informationen finden Sie im Abschnitt "Gruppierung" in diesem Dokument.
Das Panel-Element weist die folgenden Attribute auf:
Name: Der Name des Panels. Dies ist ein erforderliches Attribut vom Typ String.
DisplayAsWizard: Dieses Attribut ist derzeit veraltet. Das entsprechende VerbContext-Attribut im RCDC steuert, ob sich das Ressourcenlayout im Assistentenmodus oder im Tabulatormodus befindet. Wenn sie auf 0 (Erstellungsmodus) festgelegt ist, befindet es sich auch im Assistentenmodus. Andernfalls befindet es sich im Registerkartenmodus. Weitere Informationen finden Sie in der Dokumentation unter Einführung in das Konfigurieren und Anpassen des FIM-Portals.
Caption: Dieses Attribut ist derzeit veraltet. Der Benutzer kann Beschriftungen für eine Seite angeben, indem er eine Gruppe einfügt, die nur Kopfzeileninformationen enthält. Weitere Informationen finden Sie im Abschnitt "Gruppierung" in diesem Dokument.
AutoValidate: Dies ist ein optionales boolesches Attribut. Wenn sie auf "true" festgelegt ist, wird sie für jedes Steuerelement auf der aktuellen Registerkarte ausgelöst. Wenn das Attribut fehlt, ist es standardmäßig auf "true" festgelegt. Sie kann in Kombination mit der RegularExpression-Eigenschaft verwendet werden. Weitere Informationen finden Sie unter "RegularExpression" in einem späteren Abschnitt dieses Dokuments.
Gruppierungselement
Das Grouping-Element definiert das Gesamtlayout eines Panels. Sie fungiert als Container, der einzelne Steuerelemente in verschiedenen Abschnitten und Registerkarten gruppiert. Im Folgenden sehen Sie das XSD-Schema für das Grouping-Element:
<xsd:element name="Grouping">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Help" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Control" minOccurs="1" maxOccurs="256"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Description"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:IsHeader"/>
<xsd:attribute ref="my:IsSummary"/>
</xsd:complexType>
</xsd:element>
Es gibt drei Arten von Grouping-Element:
Kopfzeilengruppierung: Eine Kopfzeilengruppierung ist optional. Es kann nur eine Kopfzeilengruppierung in einem Panel-vorhanden sein. Eine Kopfzeilengruppierung wird über einem Bereich als Beschriftung angezeigt. In dieser Gruppierung kann nur ein UocCaptionControl verwendet werden. Ein Beispiel für eine Kopfzeilengruppierung finden Sie im Beispielabschnitt.
Inhaltsgruppierung: Mindestens eine Inhaltsgruppierung ist erforderlich. Es können mehrere Inhaltsgruppierungen in einem Panel vorhanden sein. Eine Inhaltsgruppierung wird als Hauptinhalt einer RCDC-Seite angezeigt. Jede Inhaltsgruppierung wird als Registerkarte im selben Bereich angezeigt und kann von 1 bis 256 Steuerelementen enthalten sein. Ein Beispiel für eine Inhaltsgruppierungfinden Sie im Abschnitt "Beispiele".
Zusammenfassungsgruppierung: Eine Zusammenfassungsgruppierung ist optional. Es kann nur eine Zusammenfassungsgruppierung in einem Panel vorhanden sein. Eine Zusammenfassungsgruppierung wird als letzte Registerkarte eines Panels angezeigt. Nur ein UocHtmlSummary Steuerelement kann in einer Zusammenfassungsgruppierung verwendet werden, um die Änderungen anzuzeigen, die der Benutzer vor der Übermittlung einer Anforderung vorgenommen hat. Ein Beispiel für eine Zusammenfassungsgruppierung finden Sie im Abschnitt "Beispiele".
Jeder Gruppierungstyp enthält die folgenden Elemente:
Hilfe-: Dieses Element enthält Hilfetext auf einer Registerkarte. Sie können ihn auch verwenden, um einen Link zu einer Hilfedatei für die Registerkarte hinzuzufügen.
Steuerelemente: Informationen zu diesem Element finden Sie im Abschnitt "Steuerelement" in diesem Dokument. Jede Gruppierung muss je nach Typ der Gruppierung 1 bis 256 Steuerelemente enthalten.
Ereignisse: Informationen zu diesem Element finden Sie im Abschnitt "Ereignisse" in diesem Dokument. Jede Gruppierung kann als Option ein Ereignis aufweisen. Die ereignisse, die in einem Grouping-Element unterstützt werden, sind wie folgt:
- BeforeLeave: Dieses Ereignis wird ausgelöst, wenn der Benutzer bereit ist, eine Registerkarte in einer Inhaltsgruppierung zu verlassen.
- AfterEnter: Dieses Ereignis wird ausgelöst, wenn der Benutzer bereit ist, eine Registerkarte in einer Inhaltsgruppierung einzugeben.
Eine Gruppierung kann die folgenden sieben Attribute enthalten:
Name: Dies ist der erforderliche Name der Gruppierung. Der Name muss innerhalb des Panel-eindeutig sein.
Beschriftung: Die Beschriftung wird als Überschriftenbeschriftung in einer Kopfzeilengruppierung angezeigt. Sie wird als Registerkartenbeschriftung einer Inhalts- oder Zusammenfassungsgruppierung angezeigt.
Beschreibung: Ein optionales Zeichenfolgen-Attribut Description ist nur funktionsfähig, wenn es in einer Inhaltsgruppierung verwendet wird. Verwenden Sie dieses Element, um dem Endbenutzer einige Details zu den Informationen auf derselben Registerkarte zu geben.
Hinweis
Wenn dieses Attribut in einer Zusammenfassungsgruppierung verwendet wird, wird der XML-Code als ungültig angesehen. Wenn dieses Attribut in einer Headergruppierung verwendet wird, gilt der XML-Code als gültig, wird jedoch ignoriert.
Enabled: Ein optionales boolesches Attribut, Enabled ist auf "true" festgelegt, wenn es fehlt. Wenn "Enabled" auf "false" festgelegt ist, wird dem Endbenutzer eine Registerkarte "Deaktiviert" angezeigt. Dieses Attribut ist nur in einer Inhaltsgruppierung funktionsfähig.
Hinweis
Wenn dieses Attribut in einer Zusammenfassungsgruppierung verwendet wird, wird der XML-Code als ungültig angesehen. Wenn dieses Attribut in einer Headergruppierung verwendet wird, gilt der XML-Code als gültig, wird jedoch ignoriert.
Sichtbar: Sie können eine RCDC-Seitenregisterkarte oder deren Überschrift ausblenden, indem Sie dieses Attribut auf "false" festlegen. Standardmäßig ist dieses optionale boolean-type-Attribut auf "true" festgelegt. Dieses Attribut ist nur für eine Inhaltsgruppierung funktionsfähig.
Hinweis
Wenn nur eine Inhaltsgruppierung in einem Panel vorhanden ist, funktioniert dieses Feature nicht. Wenn mehr als eine Inhaltsgruppierung in einem Panel vorhanden ist, verhält es sich wie zuvor beschrieben.
IsHeader-: Dieses Attribut ist ein optionales boolesches Attribut, das definiert, ob die Gruppierung eine Kopfzeilengruppierung ist. Wenn dieses Attribut nicht angegeben ist, wird es auf "false" festgelegt.
IsSummary: Dies ist ein optionales boolesches Attribut, das definiert, ob die Gruppierung eine Zusammenfassungsgruppierung ist. Wenn dieses Attribut nicht angegeben ist, wird es auf "false" festgelegt.
Beispiele für Typen von Gruppierungselementen
Dieser Abschnitt enthält Beispiele für das Groupings-Element.
Beispiel: Kopfzeilengruppierung
Die folgende Abbildung zeigt eine Beispielkopfgruppierung:
Der folgende XML-Code generiert eine Beispielheadergruppierung. Im XML-Code ist die Kopfzeilengruppierung der Bereich mit dem Beschriftungstext "Beispielkopfgruppierung".
<!--Sample for a Header Grouping-->
<my:Grouping my:Name="HeaderGroupingSample" my:IsHeader="true">
<my:Control my:Name="SampleHeaderCaption" my:TypeName="UocCaptionControl" my:ExpandArea="true" my:Caption="Sample Header Grouping">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="32"/>
<my:Property my:Name="MaxWidth" my:Value="32"/>
</my:Properties>
</my:Control>
</my:Grouping>
<!--End of Header Grouping Sample-->
Beispiel: Inhaltsgruppierung
Die folgende Abbildung zeigt ein Beispiel für eine Inhaltsgruppierung:
Der folgende XML-Code generiert eine Beispielinhaltsgruppierung. Im XML-Code ist die Inhaltsgruppierung der Bereich mit dem Beschriftungstext "Beispielinhaltsgruppierung".
<!--Sample for a Content Grouping-->
<my:Grouping my:Name="ContentGroupingSample" my:Caption="Sample Content Grouping" my:Description="Some description for content grouping">
<my:Control my:Name="DisplayName" my:TypeName="UocTextBox" my:Caption="Display name" my:Description="This is the display name of the set.">
<my:Properties>
<my:Property my:Name="Required" my:Value="True"/>
<my:Property my:Name="MaxLength" my:Value="128"/>
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=DisplayName, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
</my:Grouping>
<!--End of Content Grouping Sample-->
Beispiel: Zusammenfassungsgruppierung
Die folgende Abbildung zeigt eine Beispielzusammenfassungsgruppierung:
Der folgende XML-Code generiert eine Beispielzusammenfassungsgruppierung. Im XML-Code ist die Zusammenfassungsgruppierung der Bereich mit dem Beschriftungstext "Beispielzusammenfassungsgruppierung".
<!--Sample for a Summary Grouping-->
<my:Grouping my:Name="Summary" my:Caption="Sample Summary Grouping" my:IsSummary="true">
<my:Control my:Name="SummaryControl" my:TypeName="UocHtmlSummary" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="ModificationsXml" my:Value="{Binding Source=delta, Path=DeltaXml}"/>
<my:Property my:Name="TransformXsl" my:Value="{Binding Source=summaryTransformXsl, Path=/}"/>
</my:Properties>
</my:Control>
</my:Grouping>
<!--End of Summary Grouping Sample-->
Hilfeelement
Das Hilfe--Element kann in ein Grouping- oder Ein Control-Element als optionales Element eingeschlossen werden. Wenn sie in einer Gruppierung verwendet wird, muss es sich um das erste verwendete Element handeln. Sie bietet den Endbenutzern textbezogene Hilfe, um ihnen dabei zu helfen, genaue Informationen bereitzustellen. Das folgende XSD-Schema gilt für das Hilfeelement:
<xsd:element name="Help">
<xsd:complexType>
<xsd:sequence/>
<xsd:attribute ref="my:HelpText"/>
<xsd:attribute ref="my:Link"/>
</xsd:complexType>
</xsd:element>
Der folgende XML-Beispielcode generiert ein Hilfeelement:
<my:Help my:HelpText="Some Help Text for Group Basic Info" my:Link="03e258a0-609b-44f4-8417-4defdb6cb5e9.htm#bkmk_grouping_GroupingBasicInfo" />
Control-Element
Ein Grouping-Element enthält ein oder mehrere Control-Elemente. Steuerelemente sind die Hauptelemente in einem RCDC. Sie können das Grouping-Element anpassen, indem Sie die verschiedenen darin enthaltenen Steuerelementelemente definieren. Das folgende XSD-Schema ist für das Control-Element bestimmt:
<xsd:element name="Control">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Help" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:CustomProperties" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Options" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Buttons" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Properties" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:TypeName"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:Description"/>
<xsd:attribute ref="my:ExpandArea"/>
<xsd:attribute ref="my:Hint"/>
<xsd:attribute ref="my:AutoPostback"/>
<xsd:attribute ref="my:RightsLevel"/>
</xsd:complexType>
</xsd:element>
Ein Control-Element enthält die folgenden Elemente:
Hilfe-: Dieses Element wird ignoriert. Sie funktioniert nur in der Gruppierung.
CustomProperties: Dieses Element wird nicht unterstützt.
Optionen: Dieses Element wird nur in Kombination mit der UocDropDownList oder UocRadioButtonList Controls verwendet. Es ist nicht mit anderen Steuerelementen funktionsfähig. Die Struktur dieses Elements finden Sie im Abschnitt "Optionen" in diesem Dokument. Im Abschnitt "Einzelne Steuerelemente" dieses Dokuments erfahren Sie, wie Optionen von einem Steuerelement verwendet werden.
Schaltflächen: Dieses Element wird nur in Kombination mit dem UocListView Control verwendet. Es ist nicht für andere Steuerelemente funktionsfähig. Weitere Informationen finden Sie im Abschnitt "UocListView" in diesem Dokument.
Eigenschaften: Dieses Element wird in allen Steuerelementen verwendet, um zusätzliche Verhaltensweisen eines Steuerelements anzugeben. Informationen zu diesem Element finden Sie im Abschnitt "Eigenschaften" in diesem Dokument.
Ereignisse: Die Struktur dieses Elements finden Sie weiter oben in diesem Dokument im Abschnitt "Ereignisse". Im Abschnitt "Einzelne Steuerelemente" dieses Dokuments können Sie sehen, welche Ereignisse in einem Steuerelement verwendet werden.
Ein Control-Element kann die folgenden 10 Attribute enthalten:
Name: Dies ist der Name des Steuerelements. Der Name eines Steuerelements muss innerhalb jedes Bereichs eindeutig sein. Dies ist ein erforderliches Attribut vom Typ String.
TypeName: Dieses Attribut gibt an, welcher Typ von Control es ist. Dies ist ein erforderliches Attribut vom Typ String. Den einzelnen Steuerelementnamen finden Sie im Abschnitt "Einzelne Steuerelemente" in diesem Dokument.
Caption: Sie können dieses Attribut verwenden, um eine Beschriftung für das Steuerelement einzuschließen. Die Beschriftung ist in der Regel der Anzeigename der Daten, die das Steuerelement anzeigt oder eingibt. Sie können explizit einen Wert für die Beschriftung angeben oder mit Anzeigenameninformationen des Schemaattributes binden. Die Beschriftung wird auf der linken Seite eines Steuerelements in normaler Größe angezeigt. Wenn ein Steuerelement den Vollbildmodus überspannt, wird die Beschriftung über dem Steuerelement angezeigt. Dies ist ein optionales Attribut vom Typ String. Informationen zum Binden einer Datenquelle mit einem Attribut oder einem Eigenschaftswert finden Sie im Abschnitt "Eigenschaften".
Das folgende Beispiel zeigt, wie eine Beschriftung explizit verwendet werden kann:
<my:Control my:Name="ExplicitAlias" my:TypeName="UocTextBox" my:Caption="Explicit Alias">…<my:Control/>Das folgende Beispiel zeigt, wie eine Beschriftung mit einer Datenquelle verwendet werden kann. Wenn Sie die Vorlage für eine zuvor in diesem Dokument gezeigte Datenquelle verwendet haben, ist ihre Datenquelle schema. Es wird empfohlen, den DisplayName des Attributs mit einem Caption-Attribut zu binden.
<my:Control my:Name="DynamicAlias" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=Alias.DisplayName, Mode=OneWay}">…<my:Control/>Enabled: Dies ist ein optionales attribut vom Typ Boolean. Durch Festlegen dieses Attributwerts auf "false" kann der Benutzer ein Steuerelement deaktivieren. Der Standardwert ist auf "true" festgelegt.
Visible: Dies ist ein optionales attribut vom Typ Boolean. Sie können dieses Attribut verwenden, um das gesamte Steuerelement auszublenden. Der Standardwert ist auf "true" festgelegt.
Beschreibung: Verwenden Sie dieses optionale Attribut vom Zeichenfolgentyp, um eine Beschreibung einzuschließen, damit der Endbenutzer verstehen kann, was er in das Steuerelement einfügen soll oder was das Steuerelement tut. Sie können explizit einen Wert für die Beschreibung angeben oder mit den Beschreibungsinformationen des Schemaattributes binden.
Die Beschreibung wird auf der linken Seite eines Normalsteuerelements unterhalb der Beschriftung angezeigt. Wenn ein Steuerelement den Vollbildmodus überspannt, wird die Beschreibung am oberen Rand des Steuerelements unterhalb der Beschriftung angezeigt. Informationen zum Binden einer Datenquelle mit einem Attribut oder einem Eigenschaftswert finden Sie im Abschnitt "Eigenschaften" in diesem Dokument.
Das folgende Beispiel zeigt, wie eine Beschreibung explizit verwendet werden kann:
<my:Control my:Name="ExplicitAlias" my:TypeName="UocTextBox" my:Caption="Explicit Alias" my:Description="This is explicit description.">…<my:Control/>In diesem Beispiel wird gezeigt, wie eine Beschreibung mit einer Datenquelle verwendet werden kann. Wenn Sie die Vorlage für eine weiter oben in diesem Dokument gezeigte Datenquelle verwendet haben, ist Ihre Datenquelle Schema-. Es wird empfohlen, die Description des Attributs mit einem Description-Attribut zu binden.
<my:Control my:Name="DynamicAlias" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=Alias.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=Alias.Description, Mode=OneWay}">…<my:Control/>ExpandArea: Dieses Attribut gibt an, ob das Steuerelement den Vollbildmodus umfasst. Dies ist ein optionales boolean-type-Attribut. Der Standardwert ist auf "false" festgelegt.
Hinweis
Die Attribute "Caption" und "Description" werden deaktiviert, wenn dieses Attribut auf "true" festgelegt ist. Verwenden Sie das UocLabel-Steuerelement, um eine Beschriftung für ein erweitertes Steuerelement bereitzustellen.
Hinweis: Dies ist ein optionales Attribut vom Typ String. Der Text im Hint-Attribut hilft dem Endbenutzer zu entscheiden, was eine gültige Eingabe für das Steuerelement ist. Der Hinweis wird unterhalb des Steuerelements angezeigt.
AutoPostback-: Dies ist ein optionales attribut vom Typ Boolean. Der Standardwert ist "false". Wenn dieser Wert auf "false" festgelegt ist, wird das Steuerelement möglicherweise nicht aktualisiert. Wenn Sie Informationen zu AutoPostback wünschen, suchen Sie nach der Microsoft ASP.NET Ui-Steuerelementeigenschaft mit demselben Namen.
RightsLevel-: Dies ist ein optionales Attribut vom Typ String. Sie können dieses Attribut nur mit Inlinerechten mit einer Datenquelle binden. Das Steuerelement wird basierend auf den Rechten des Benutzers dynamisch aktiviert oder deaktiviert. Informationen zum Binden von Datenquellen mit einem Attribut oder einem Eigenschaftswert finden Sie im Abschnitt "Eigenschaften" in diesem Dokument.
In diesem Beispiel wird gezeigt, wie ein RightsLevel-Attribut mit einer Datenquelle verwendet werden kann. Wenn Sie die Vorlage für eine datenquelle verwendet haben, die weiter oben in diesem Dokument angezeigt wird, ist Ihre Datenquelle Rechte. Verwenden Sie den Attributnamen als Pfad.
Eigenschaftselement
Sie können ein Property-Element verwenden, um das Verhalten der einzelnen Steuerelemente weiter anzupassen. Eine Eigenschaft ist ein leeres Element. Das folgende XSD-Schema gilt für das Property-Element:
<xsd:element name="Properties">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Property" minOccurs="1" maxOccurs="32"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Property">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Value"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
Jede Eigenschaft weist die folgenden beiden erforderlichen Attribute auf:
Name: Dieses Zeichenfolgentyp-Attribut ist der eindeutige Name der Eigenschaft. Verschiedene Steuerelemente weisen unterschiedliche Eigenschaften auf. Es gibt einige allgemeine Eigenschaften, die von allen Steuerelementen verwendet werden können. Weitere Informationen dazu, welche Namen für ein bestimmtes Steuerelement verfügbar sind, finden Sie in den Abschnitten "Allgemeine Eigenschaften" und "Einzelne Steuerelemente" dieses Dokuments.
Wert: Dies ist der Wert der Eigenschaft. Der Datentyp des Werts, der von der Eigenschaft abhängig ist, der sie zugewiesen ist. Im folgenden Abschnitt finden Sie das zulässige Wertformat für bestimmte Eigenschaften.
Eigenschaft mit Datenquelleninhalt binden
Einige Eigenschaften können mit Informationen aus einer Datenquelle gebunden werden. Verwenden Sie das folgende Zeichenfolgenformat, um diese Bindung zu erstellen. Informationen zum Binden von Eigenschaften mit einer Datenquelle finden Sie in der Beschreibung der einzelnen Eigenschaften im Abschnitt "Einzelne Steuerelemente".
<my:Property my:Name="Required" my:Value="[Formatted String]"/>
Formatted String := “{Binding “ + [SourceExpression] + “,” + [PathExpression] + “,” + [ModeExpression]? + “}
SourceExpression:= “Source=” + [ObjectDataSourceName]
PathExpression:= “Path=” + [AttributeName]|[AttributePropertyName]
ModeExpression:= “Mode=” + [ModeChoice]
ModeChoice:= “OneWay”|”TwoWay”
ObjectDataSourceName:= The value of any string assign to node /ObjectControlConfiguration/ObjectDataSource/Name.
AttributeName:= valid schema attribute name from the data source.
AttributePropertyName:= valid property name of a schema attribute from the data source.
Der folgende XML-Code zeigt, wie eine Datenquelle an ein Property-Element gebunden wird:
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=DisplayName, Mode=TwoWay}"/>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required}"/>
Allgemeine Eigenschaften
Alle RCDC-Steuerelemente, die in diesem Dokument angegeben sind, können die allgemeinen Eigenschaften aufweisen, die in diesem Abschnitt beschrieben werden. Sie können diese Eigenschaften zusammen mit anderen Eigenschaften verwenden, die für unterschiedliche Steuerelemente spezifisch sind.
Erforderlicher: Diese Eigenschaft gibt an, dass das Feld entweder ein Pflichtfeld oder ein optionales Feld ist. Ein Pflichtfeld muss mit einem Wert gefüllt werden. Ein leerer Wert wird für Zeichenfolgeneingaben nicht unterstützt. Ein optionales Feld kann leer bleiben. Wenn es sich bei diesem Feld um ein Pflichtfeld ohne ausgefüllten Wert handelt, wird oben im Eingabesteuerelement eine Fehlermeldung angezeigt. Sie können explizit angeben, ob ein Feld erforderlich oder optional ist. Sie können das Feld auch mit den Schemainformationen einer bestimmten Bindung zwischen einem Attribut und einem Ressourcentyp binden. Wenn diese Eigenschaft fehlt, bedeutet dies standardmäßig, dass das Steuerelement ein optionales Eingabesteuerelement ist.
Im folgenden Beispiel wird ein expliziter Wert für diese Eigenschaft verwendet:
<my:Property my:Name="Required" my:Value="True"/>Dies ist ein Beispiel, das eine dynamische Datenquelle für diese Eigenschaft verwendet. Wenn Sie die Vorlage für eine Datenquelle verwendet haben, die im vorherigen Abschnitt dieses Dokuments angezeigt wird, ist Ihre Datenquelle schema. Verwenden Sie
<attribute name>.Requiredals Pfad.<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required}"/>ReadOnly: Durch Festlegen dieser Eigenschaft auf "true" wird das Steuerelement vom Endbenutzer im schreibgeschützten Modus angezeigt. Dies ist ein optionales boolean-type-Attribut. Der Standardwert ist auf "false" festgelegt. Manchmal wird das Verhalten dieser Eigenschaft jedoch durch den Typ der Rechte überschrieben, die eine Person für die Datenbindung mit dem Steuerelement hat. Wenn ein Benutzer beispielsweise keine Rechte zum Aktualisieren eines Felds hat und das Feld mit Inlinerechten gebunden ist, sieht der Benutzer die Daten in einem schreibgeschützten Modus, selbst wenn diese Eigenschaft auf "false" festgelegt ist.
RegularExpression: Diese Eigenschaft gibt Einschränkungen an, die für den Wert im Steuerelement auferlegt werden. Die Formate dieses Eigenschaftswerts sind die Formate, die im .NET StringRegex-Standard unterstützt werden. Weitere Informationen finden Sie unter reguläre .NET Framework-Ausdrücke. Wenn das Steuerelement zum Eingeben eines Werts verwendet wird, wird der Wert anhand der In dieser Eigenschaft angegebenen Einschränkung überprüft, wenn der Benutzer versucht, die aktuelle Seite zu verlassen. Die Fehlermeldung wird oben im Steuerelement mit ungültiger Eingabe angezeigt. Der Benutzer kann explizit einen regulären Zeichenfolgenausdruck angeben. Der Benutzer kann es auch mit Schemainformationen eines bestimmten Attributs binden. Wenn diese Eigenschaft nicht vorhanden ist, bedeutet dies, dass das Steuerelement keine Einschränkungen für Eingabezeichenfolgen überprüft.
Im folgenden Beispiel wird ein expliziter Wert für diese Eigenschaft verwendet:
<my:Property my:Name="RegularExpression" my:Value="[A-Z]*"/>Dies ist ein Beispiel, das eine dynamische Datenquelle für diese Eigenschaft verwendet. Wenn Sie die Vorlage für eine zuvor in diesem Dokument gezeigte Datenquelle verwendet haben, ist Ihre Datenquelle schema. Verwenden Sie die
<attribute name>.StringRegexals Pfad.<my:Property my:Name="RegularExpression" my:Value="{Binding Source=schema, Path=Alias.StringRegex, Mode=OneWay}"/>Visible: Dies ist ein optionales attribut vom Typ Boolean. Sie können dieses Attribut verwenden, um das gesamte Steuerelement auszublenden. Der Standardwert ist auf "true" festgelegt.
Options-Element
Das Options-Element enthält mindestens einen Option Unterknoten. Das Options--Element wird nur mit den steuerelementen UocRadioButtonList und UocDropDownList verwendet. Ausführliche Informationen zur Verwendung dieser Steuerelemente finden Sie im Abschnitt "Einzelne Steuerelemente" dieses Dokuments.
Das folgende XSD-Schema ist für das Options-Element bestimmt:
<xsd:element name="Options">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Option" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Option">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Value"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Hint"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
Das Options-Element weist die folgenden Attribute auf:
Wert: Dies ist ein erforderliches Attribut des Zeichenfolgentyps. Das Wert-Attribut muss innerhalb desselben Steuerelements eindeutig sein. Es können nur A bis Z zeichen ohne Groß-/Kleinschreibung verwendet werden.
Caption: Dieses erforderliche Attribut ist der Anzeigename jeder Option.
Hinweis: Dies ist ein optionales Attribut. Verwenden Sie dieses Attribut, um dem Endbenutzer weitere Informationen und Hinweise bereitzustellen.
Umgebungsvariablen
Die folgenden Umgebungsvariablen können in jeder RCDC-Konfiguration verwendet werden:
| Variable | BESCHREIBUNG |
|---|---|
<LoginID> |
Zeigt die ID des Aktuell angemeldeten Benutzers an. |
<LoginDomain> |
Zeigt die Domäne des Benutzers an, der aktuell angemeldet ist. |
<Today> |
Zeigt das aktuelle Datum und die aktuelle Uhrzeit an. |
<FromToday_nnn> |
Zeigt das aktuelle Datum sowie nnn und die Uhrzeit an, wobei nnn eine ganze Zahl ist. |
<ObjectID> |
Die primäre RCDC-Ressourcen-ID. |
<Attribute_xxx> |
Gibt ein angegebenes Attribut (xxx) der primären RCDC-Ressource zurück. |
Debuggen von XML-Konfigurationsdateien
Wenn Sie XML-Konfigurationsdateien für einen RCDC entwickeln oder ändern, können Sie Fehler reduzieren, indem Sie den XML-Code für XSD-Dateien mithilfe eines Editors wie Microsoft Visual Studio überprüfen. Weitere Informationen finden Sie unter Eine Einführung in die XML-Tools in Visual Studio 2005.
Anpassen von Hilfedateien
Wenn Sie neue Ressourcen und Attribute erstellen, sollten Sie die vorhandenen Hilfedateien im FIM-Portal mit Inhalten für Ihre angepassten Ressourcen aktualisieren. Hilfedateien im FIM-Portal befinden sich im .htm Format und können manuell bearbeitet werden. Weitere Informationen zum Erstellen von benutzerdefinierten Attributen finden Sie in der FIM 2010-Dokumentation in der Einführung in die Benutzerdefinierte Ressourcen- und Attributverwaltung.
Wichtig
Informationen zu den Grundlagen der Formatierung oder Bearbeitung von HTML finden Sie in diesem Artikel nicht. Es wird erwartet, dass Benutzer wissen, wie HTML-Dateien bearbeitet werden.
Speicherort von Hilfedateien
Alle Hilfedateien für das Microsoft Identity Manager 2016 SP1-Portal befinden sich im Ordner <ProgramFiles>\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Layouts\MSILM2\Help\1033\html auf dem MIM-Dienstserver.
Suchen einer bestimmten Hilfedatei
Alle Hilfedateien für das FIM-Portal werden mit einem global eindeutigen Bezeichner (GUID) benannt. So suchen Sie die richtige Datei für Ihre benutzerdefinierte Ressource:
Öffnen Sie im FIM-Portal die Hilfedatei auf der Portalseite, die Sie anpassen möchten.
Klicken Sie mit der rechten Maustaste auf die Hilfedatei, und wählen Sie Eigenschaftenaus.
Markieren und kopieren Sie die
<GUID\>.htmDatei im Feld URL-Adresse.Navigieren Sie zu dem Ordner, in dem die Hilfedateien gespeichert sind, und suchen Sie nach der Datei.
Hinzufügen von Inhalten für attribut in vorhandenem Grouping-Element
So fügen Sie beschreibenden Inhalt für ein neues Attribut in einem vorhandenen Grouping-Element (Registerkarte) hinzu:
Identifizieren und suchen Sie die entsprechende Hilfedatei.
Öffnen Sie die Datei mit einem HTML-Editor.
Suchen Sie, wo Sie den Inhalt hinzufügen möchten. Dies befindet sich in der Regel in einem zusätzlichen Absatz, z. B.:
<p xmlns="">A new paragraph with customized information.</p>Es kann auch ein Element sein, das in eine vorhandene Liste eingefügt wird, z. B.:
<li class="unordered"><b>First Name</b> – The first name of the User.<br> <li class="unordered"><b>Last Name</b> - The last name of the User.<br> <li class="unordered"><b>Added a new line</b><br>
Hinzufügen von Inhalten für vorhandenes Grouping-Element
Die meisten FIM-Portalseiten weisen mehrere Gruppierungselemente (oder Registerkarten) auf, und die zugehörigen Hilfedateien enthalten Lesezeichenabschnitte, die sich auf jedes Gruppierungselement beziehen. Die Lesezeichen im HTML-Code werden in den Abschnitten angegeben. Dies ist beispielsweise der HTML-Code für die Registerkarte "Arbeitsinformationen" aus der Hilfedatei für die Seite "Benutzer erstellen" im FIM-Portal:
<a name="bkmk_grouping_WorkInfo" xmlns=""></a><h3 class="subHeading" xmlns="">Work Info</h3><p class="subHeading" xmlns=""></p><div class="subSection" xmlns="">
Es wird vom Grouping-Element WorkInfo in der XML-Konfigurationsdatendatei für die Configuration for User Creation RCDC referenziert. Der \<GUID\>.htm Dateiname und die Textmarke werden im my:Link Parameter angegeben:
<my:Grouping my:Name="WorkInfo" my:Caption="%SYMBOL_WorkInfoTabCaption_END%" my:Enabled="true" my:Visible="true"> <my:Help my:HelpText="%SYMBOL_WorkInfoTabHelpText_END%" my:Link="5e18a08b-4b20-48b8-90c6-c20f6cbeeb44.htm#bkmk_grouping_WorkInfo"/>
Einfache Steuerelementbeispiele
Dieser Abschnitt enthält Beispiele zum Erstellen verschiedener einfacher Textfeld-Steuerelemente.
Die folgende Abbildung zeigt einige einfache Textfeld-Steuerelemente in verschiedenen Modi:
Das folgende Codesegment erstellt das erste Textfeld-Steuerelement, das expliziten Text für alle Attribute und Eigenschaften verwendet:
<!-- Sample for a simple control to use explicit information. (with hints)-->
<my:Control my:Name="ExplicitControl" my:TypeName="UocTextBox" my:Caption="Explicit Control" my:Description="This is explicit description." my:Hint="This is a Hint (enter any text).">
<my:Properties>
<my:Property my:Name="Required" my:Value="True"/>
<my:Property my:Name="RegularExpression" my:Value="[A-Z]*"/>
<my:Property my:Name="Text" my:Value="Enter Information Here"/>
</my:Properties>
</my:Control>
<!-- End of Sample for a simple control to use explicit information.-->
Das folgende Codesegment erstellt das zweite Textfeld-Steuerelement, das dynamische Bindungstechniken verwendet, um das Steuerelement mit einer anderen Datenquelle zu verknüpfen:
<!-- Sample for a simple control to use stored data information.-->
<my:Control my:Name="DynamicControl" my:TypeName="UocTextBox" my:Caption="{Binding Source=schema, Path=DisplayName.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=DisplayName.Description, Mode=OneWay}" my:RightsLevel="{Binding Source=rights, Path=DisplayName, Mode=OneWay}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=DisplayName.Required, Mode=OneWay}"/>
<my:Property my:Name="RegularExpression" my:Value="{Binding Source=schema, Path=DisplayName.StringRegex, Mode=OneWay}"/>
<my:Property my:Name="Text" my:Value="{Binding Source=object, Path=DisplayName, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!-- End of Sample for a simple control to use stored data information.-->
Das folgende Codesegment erstellt das dritte erweiterte Bezeichnungs- und Textfeld-Steuerelement:
<!-- Sample for a simple expanded control with caption control.-->
<my:Control my:Name="SampleExpandLabel" my:TypeName="UocLabel" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="Text" my:Value="This is an expanded control."/>
</my:Properties>
</my:Control>
<my:Control my:Name="ExpandedControl" my:TypeName="UocTextBox"
my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="Required" my:Value="false"/>
<my:Property my:Name="Columns" my:Value="40"/>
<my:Property my:Name="Text" my:Value="Expanded control (enter text)"/>
</my:Properties>
</my:Control>
<!-- End of Sample for a simple expanded control.-->
Im folgenden Codesegment wird das vierte deaktivierte Textfeld-Steuerelement erstellt. Obwohl dieses Steuerelement keinen sichtbaren Unterschied zwischen dem deaktivierten Zustand und dem aktivierten Zustand anzeigt, kann der Benutzer keine Daten mehr in das Textfeld eingeben.
<!-- Sample for a simple disabled control.-->
<my:Control my:Name="DisabledControl" my:TypeName="UocTextBox" my:Caption="Disabled Control" my:Description="This is disabled simple control." my:Enabled="false">
<my:Properties>
<my:Property my:Name="Required" my:Value="false"/>
<my:Property my:Name="MaxLength" my:Value="128"/>
<my:Property my:Name="Text" my:Value="Disabled control"/>
</my:Properties>
</my:Control>
<!-- End of Sample for a simple disabled control.-->
Einzelne Steuerelemente
In diesem Abschnitt werden die einzelnen Steuerelemente dokumentiert, die mit Microsoft Identity Manager 2016 SP1 bereitgestellt werden.
UocButton
Name: UocButton
Beschreibung: Dies ist ein einfaches Schaltflächensteuerelement, mit dem Sie bestimmte Aktionen auslösen können. Da Sie jedoch keinen eigenen Handler angeben können, ist die Verwendung dieses Steuerelements eingeschränkt.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
Text: Diese Eigenschaft gibt den Text an, der auf der Schaltfläche angezeigt wird. Dies ist ein optionales Attribut vom Typ String. Der Text akzeptiert einen expliziten Zeichenfolgenwert.
Ereignisse:
- OnButtonClicked: Das Ereignis wird ausgegeben, wenn auf die Schaltfläche geklickt wird.
Beispiel:
Das folgende XML-Segment erzeugt eine einfache UocButton-Steuerelementschaltfläche:
<!--Sample enabled simple button control-->
<my:Control my:Name="ButtonControl" my:TypeName="UocButton" my:Caption="SampleButton" my:Description="This is a simple button."
my:Hint="Click the button">
<my:Properties>
<my:Property my:Name="Required" my:Value="True"/>
<my:Property my:Name="Text" my:Value="Click Me"/>
</my:Properties>
</my:Control>
<!--End of sample enabled simple button control -->
UocCaptionControl
Name: UocCaptionControl
Beschreibung: Dieses Steuerelement wird verwendet, um die Beschriftung einer RCDC-Seite anzuzeigen. Dieses Steuerelement wurde nur als einzelnes Steuerelement in einer Kopfzeilengruppierung verwendet. Die Verwendung in einem anderen Kontext kann zu Renderingproblemen oder Portalfehlern führen.
Modus: Schreibgeschützt (OneWay)
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
MaxHeight: Diese Eigenschaft gibt die maximale Höhe des Symbols im Beschriftungsbereich an. Diese Eigenschaft ist optional. Diese Eigenschaft akzeptiert einen ganzzahligen Wert in Pixeln. Der Standardwert beträgt 32 Pixel.
Ereignisse:
- Für dieses Steuerelement gibt es keine Ereignisse.
Beispiel:
Im folgenden Codesegment wird ein Überschriftenbeschriftungs-generiert:
<!--Sample header caption control-->
<my:Control my:Name="SampleHeaderCaption" my:TypeName="UocCaptionControl" my:ExpandArea="true" my:Caption="Header Caption" my:Description="Description Starts here.">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="32"/>
<my:Property my:Name="MaxWidth" my:Value="32"/>
</my:Properties>
</my:Control>
<!--End of sample header caption control-->
Im folgenden Codesegment wird ein Explicit Content Captiongeneriert:
<my:Control my:Name="SampleContentCaption" my:TypeName="UocCaptionControl" my:ExpandArea="true" my:Caption="Sample Explicit Content Caption" my:Description="Explicit content caption with smaller icon">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="20"/>
<my:Property my:Name="MaxWidth" my:Value="20"/>
</my:Properties>
</my:Control>
<!--End of sample caption-->
Das folgende Codesegment generiert einen Anzeigenamen dynamische Beschriftung:
<!--Sample content dynamic caption-->
<my:Control my:Name="Caption3" my:TypeName="UocCaptionControl" my:Caption="{Binding Source=schema, Path=DisplayName.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=DisplayName.Description, Mode=OneWay}"/>
<!--End of sample caption -->
UocCheckBox
Name: UocCheckBox
Beschreibung: Dies ist ein einfaches Kontrollkästchen-Steuerelement. Es wird empfohlen, dass der Benutzer dieses Steuerelement mit booleschen Datentypen bindet. Dieses Steuerelement kann basierend auf den Daten, an die es gebunden ist, als schreibgeschütztes Steuerelement oder als aktualisierbares Steuerelement verwendet werden.
Hinweis
Wenn Sie in dieser Version das Kontrollkästchen-Steuerelement im Bearbeitungsmodus verwenden, um ein boolesches Attribut anzuzeigen, fügt das Ressourcensteuerelement dem Attribut einen Wert false hinzu, wenn OK- im Bearbeitungsmodus geklickt wird. Die Umgehung besteht darin, immer ein boolesches Attribut zu erstellen, das davon ausgeht, dass das Vorhandensein nicht mit falseidentisch ist, oder andere Steuerelemente wie ein Optionsfeld für boolesche Attribute verwenden.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
DefaultValue-: Dies ist eine optionale boolesche Eigenschaft. Der Standardwert ist auf "false" festgelegt. Dieses Feld gibt das Standardverhalten eines Kontrollkästchens an. Dies kann explizit angegeben werden.
Aktivierte: Dies ist eine optionale boolesche Eigenschaft. Der Standardwert ist auf "false" festgelegt. Dieser Wert überschreibt die DefaultValue-Eigenschaft, wenn sie zusammen mit DefaultValue vorhanden ist. Dieses Feld gibt das Verhalten eines Kontrollkästchens an. Wie DefaultValue kann dies explizit angegeben oder an Daten vom Server gebunden werden.
Text-: Dies ist ein optionales Attribut vom Typ String. Der Text wird rechts neben dem Kontrollkästchen angezeigt. Mit dieser Eigenschaft können Sie Text angeben, der dem Endbenutzer weitere Informationen bereitstellt.
Ereignisse:
- CheckedChanged: Wenn das Kontrollkästchen seinen Status ändert, wird dieses Ereignis ausgegeben.
Beispiel:
Im folgenden Beispiel wird eine benutzerdefinierte Bindung zwischen dem benutzerdefinierten Ressourcentyp und dem Attribut IsConfigurationTypeerstellt. Der XML-Code wird im RCDC eines benutzerdefinierten Ressourcentyps verwendet.
Das folgende Codesegment erzeugt ein dynamisches Kontrollkästchen, wie in der vorherigen Abbildung als dynamisches Kontrollkästchen dargestellt. Diese Art von Bindung ist vielseitiger und nützlicher als ein explizites Kontrollkästchen. Das Attribut muss zum aktuellen Ressourcentyp gehören.
<!--Sample dynamic check box-->
<my:Control my:Name="SampleDynamicCheckBox" my:TypeName="UocCheckBox" my:Caption="Dynamic Check Box" my:Description="This is a dynamic check box. It saves to data source." my:RightsLevel="{Binding Source=rights, Path=IsConfigurationType}">
<my:Properties>
<my:Property my:Name="Text" my:Value="{Binding Source=schema, Path=IsConfigurationType.DisplayName, Mode=OneWay}"/>
<my:Property my:Name="Checked" my:Value="{Binding Source=object, Path=IsConfigurationType, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!--End of sample dynamic check box -->
UocCommonMultiValueControl
Name: UocCommonMultiValueControl
Beschreibung: Dies ist ein mehrteiliges Textfeld-Steuerelement, das spezielle Zeichenfolgenformatierung unterstützt. Jeder Wert zwischen den mehrwertigen Einträgen wird durch ein Semikolon (;) oder einen Zeilenumbruch im Textfeld voneinander getrennt. Es wird empfohlen, dieses Steuerelement mit Daten von mehrwertigen, kurzen Zeichenfolgen- und ganzzahligen Typen zu binden. Dieses Steuerelement unterstützt sowohl den schreibgeschützten Modus als auch den aktualisierbaren Modus.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
DataType-: Dies ist ein erforderliches Attribut vom Typ String. Sie können dies als String-, Integer-- oder DateTime- Typ explizit angeben. Sie können das Attribut auch an die DataType- eigenschaft des Schemaattributes binden. Ein mehrwertiger Verweistyp sollte von UOCListView- oder UOCIdentityPicker-behandelt werden. Boolescher Wert mit mehreren Werten ist kein unterstützter Datentyp.
Rows: Dies ist ein optionales Attribut vom Typ Integer. Sie können die Höhe des Felds in einer Anzahl von Zeichen definieren. Standardmäßig ist der Wert auf „1“ festgelegt.
Spalten: Dies ist ein optionales Attribut vom Typ Integer. Sie können definieren, wie viele Zeichen lang das Feld ist. Der Standardwert ist 20.
Wert: Dies ist ein optionales Attribut vom Typ String. Sie können dieses Attribut nur mit der Datenquelle binden.
Ereignisse:
- ValueListChanged: Dieses Ereignis wird ausgelöst, wenn sich der aktuelle Wert im Steuerelement ändert.
Beispiel:
Im folgenden Beispiel wird ein mehrwertiges Zeichenfolgenattribut namens AMultiValueString erstellt und an den benutzerdefinierten Ressourcentyp gebunden. Dieses Beispiel funktioniert erst, nachdem diese Bindung erstellt wurde.
Das folgende Codesegment generiert ein UocCommonMultiValueControl--Steuerelement:
<!--Sample multivalue control-->
<my:Control my:Name="SampleDynamicMultiValueControl" my:TypeName="UocCommonMultiValueControl" my:Caption="{Binding Source=schema, Path=AMultiValueString.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=AMultiValueString.Description, Mode=OneWay}" my:RightsLevel="{Binding Source=rights, Path=AMultiValueString}">
<my:Properties>
<my:Property my:Name="Rows" my:Value="6"/>
<my:Property my:Name="Columns" my:Value="60"/>
<my:Property my:Name="DataType" my:Value="String"/>
<!--not supported for above property my:Value={Binding Source=schema, Path=AMultiValueString.DataType, Mode=OneWay}"/>-->
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=AMultiValueString, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!--End of sample multivalue control -->
UocDateTimeControl
Name: UocDateTimeControl
Beschreibung: Dies ähnelt einem Textfeld-Steuerelement, aber Beschreibung akzeptiert nur ein bestimmtes Format. Im schreibgeschützten Modus wird sie wie eine Bezeichnung angezeigt. Das Format der unterstützten Eingabezeichenfolge finden Sie in der DateTimeFormat- eigenschaft in diesem Abschnitt.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
DateTimeFormat-: Dies ist ein optionales Attribut vom Typ String. Die unterstützten Formate sind DateTime- und DateOnly-. Der Standardwert wird auf das DateTime--Format festgelegt.
DateTime-: Das Attribut ist als mm/tt/jjjj hh:mm:ss AM formatiert.
DateOnly: Das Attribut ist als mm/tt/jjjj formatiert.
Hinweis
Sowohl DateTime- als auch DateOnly- Formate werden unterstützt, unabhängig vom Benutzer, der den Unterschied angibt.
Wert: Dies ist ein optionales Attribut vom Typ String. Sie binden dieses Attribut an eine Ressourcendatenquelle. Der Wert dieses Attributs muss dem richtigen Datetime-Format entsprechen.
Ereignisse:
- DateTimeChanged: Wenn sich der Datetime-Wert ändert, tritt das Ereignis auf.
Beispiel:
Das folgende Codesegment erzeugt das erste DateTime--Steuerelement.
<!--Sample explicit DateTime control-->
<my:Control my:Name="SampleExplicitDateTimeControl" my:TypeName="UocDateTimeControl" my:Caption="Explicit Date Time Control" my:Description="The data shown here is explicit and in date time format.">
<my:Properties>
<my:Property my:Name="DateTimeFormat" my:Value="DateTime"/>
<my:Property my:Name="Value" my:Value="11/11/2008 00:00:00"/>
</my:Properties>
</my:Control>
<!--End of sample explicit DateTime control -->
Das folgende Codesegment erzeugt das zweite DateTime--Steuerelement. Wenn Sie den Beispielcode im Abschnitt "Datenquellen" verwendet haben, ist das attribut ExpirationTime an alle Ressourcentypen gebunden. Daher können Sie sie mit folgendem Code verwenden:
<!--Sample dynamic DateTime control-->
<my:Control my:Name="SampleDynamicDateTimeControl" my:TypeName="UocDateTimeControl" my:Caption="{Binding Source=schema, Path=ExpirationTime.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=ExpirationTime.Description, Mode=OneWay}" my:RightsLevel="{Binding Source=rights, Path=ExpirationTime}">
<my:Properties>
<my:Property my:Name="DateTimeFormat" my:Value="DateOnly"/>
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=ExpirationTime, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!--End of dynamic explicit DateTime control -->
UocDropDownList
Name: UocDropDownList
Beschreibung: Dies ist ein einfaches Dropdownfeld-Steuerelement. Dieses Steuerelement wird verwendet, um Optionen aus einem definierten Satz von Auswahlmöglichkeiten auszuwählen. Datentypen von Zeichenfolgen, ganzzahligen Zahlen, Datetime und Boolean sind gute Kandidaten für dieses Steuerelement.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
ValuePath-: Die Eigenschaft zum Abrufen des Value-Attributs aus ItemSource. Wenn ItemSource als "Benutzerdefiniert" angegeben wird, wird der Wertpfad auf "Value" festgelegt. Sie bindet mit dem Feld "Wert" aus dem Option-Element, wie in diesem Abschnitt beschrieben.
CaptionPath-: Die Eigenschaft zum Abrufen des Value-Attributs aus ItemSource. Wenn ItemSource als "Benutzerdefiniert" angegeben wird, wird der Wertpfad auf "Caption" festgelegt. Sie bindet mit dem Feld "Caption" aus dem Option-Element, wie in diesem Abschnitt beschrieben.
HintPath-: Die Eigenschaft zum Abrufen des Value-Attributs aus ItemSource. Wenn ItemSource als "Benutzerdefiniert" angegeben wird, wird der Wertpfad auf "Hint" festgelegt. Sie bindet mit dem Feld "Hint" aus dem Option-Element, wie in diesem Abschnitt beschrieben.
ItemSource-: Eine Auflistung von ListControlItems, die die Auswahlmöglichkeiten in der Liste definiert. Der Benutzer kann dies explizit auf "Benutzerdefiniert" festlegen und das Option-Element verwenden, wie in diesem Abschnitt beschrieben, um den Zeichenfolgenwert anzugeben.
SelectedValue: Der aktuell ausgewählte Wert. Dies ist eine erforderliche Eigenschaft vom Typ String. Diese Eigenschaft ist an Zeichenfolgendaten aus der Datenquelle gebunden.
Ereignisse:
- SelectedIndexChanged: Das Ereignis tritt auf, wenn sich die Auswahl im Dropdownfeld ändert.
Optionen:
Die Struktur eines Options-Elements finden Sie unter Options-Element.
Wert: Der Wert eines einzelnen Options-Elements kann auf eine beliebige Zeichenfolge festgelegt werden, bei der es sich um die gültige Eingabe der Datenquelle handelt, an die das Steuerelement gebunden ist.
Beschriftungs-: Beschriftung kann ein beliebiger Zeichenfolgenwert sein.
Hinweis: Hinweis kann ein beliebiger Zeichenfolgenwert sein.
Beispiel:
Hinweis
Damit das Beispiel funktioniert, müssen Sie ein vorhandenes Attribut vom Zeichenfolgentyp Scope mit dem benutzerdefinierten Ressourcentyp binden, für den der RCDC gilt.
Das folgende Codesegment generiert eine Dropdownliste:
<!--Sample for drop-down list control-->
<my:Control my:Name="Scope" my:TypeName="UocDropDownList" my:Caption="{Binding Source=schema, Path=Scope.DisplayName}" my:RightsLevel="{Binding Source=rights, Path=Scope}">
<my:Options>
<my:Option my:Value="DomainLocal" my:Caption="Domain Local" my:Hint="to secure a local resource (i.e. a file share on your computer)" />
<my:Option my:Value="Global" my:Caption="Global" my:Hint="to secure resources across your team or division" />
<my:Option my:Value="Universal" my:Caption="Universal" my:Hint="to use this group across your organization" />
</my:Options>
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=Scope.Required" />
<my:Property my:Name="ValuePath" my:Value="Value" />
<my:Property my:Name="CaptionPath" my:Value="Caption" />
<my:Property my:Name="HintPath" my:Value="Hint" />
<my:Property my:Name="ItemSource" my:Value="Custom" />
<my:Property my:Name="SelectedValue" my:Value="{Binding Source=object, Path=Scope, Mode=TwoWay}" />
</my:Properties>
</my:Control>
<!--End of Sample for drop-down list control-->
UocFileDownload
Name: UocFileDownload
Beschreibung: Dieses Steuerelement enthält einen Link. Wenn auf den Link geklickt wird, wird eine Windows-Seite "Datei speichern" angezeigt. Der Benutzer kann die Datei auf dem lokalen Laufwerk speichern. Die Option "Öffnen" wird auch unterstützt, wenn Internet Explorer das Dateiformat rendern kann. Die empfohlenen Datentypen für die Verwendung dieses Steuerelements sind formatierte Zeichenfolgen (XML) und Binäre Typen.
Hinweis
In dieser Version von Microsoft Identity Manager 2016 SP1 muss der Benutzer das Internet Explorer-Fenster schließen, in dem sie die Datei geöffnet und dann die Seite aktualisieren. Nach dem Aktualisieren des Internet Explorer-Fensters kann der Benutzer den Download starten, um die gleiche Datei erneut im ursprünglichen Fenster zu speichern oder zu öffnen.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
Text: Dies ist ein optionales Attribut vom Typ String, das den Linktext definiert. Der Benutzer kann eine explizite Zeichenfolge für diese Eigenschaft angeben.
Value: Dies ist ein erforderliches Attribut. Es gibt die Attributbindung auf dem Server an, deren Inhalt heruntergeladen werden soll.
PromptedFileName: Dies ist ein optionales Attribut vom Typ String. Dies ist der Dateiname, der dem Benutzer vorgeschlagen wird, wenn er die heruntergeladene Datei speichert.
ContentType-: Dies ist ein erforderliches Attribut vom Typ String. Dies ist der Dateityp, in dem die Daten gespeichert werden. Text oder Binärdatei sind die beiden unterstützten Zeichenfolgenoptionen. Wenn es sich um Text handelt, wird der Rückgabewert als lange Zeichenfolge betrachtet. Andernfalls gilt der Rückgabewert als Byte[]. Wenn Text ausgewählt ist, kann der Benutzer als Option ein Suffix hinzufügen, um den Formattyp anzugeben, in dem sich der Text befindet. Beispielsweise ist Text/XML gültig.
Hinweis
Wenn der an dieses Steuerelement gebundene Wert leer ist, fehlt das Steuerelement dem Link, der zum Auslösen der Downloadaktion verwendet werden soll. Dies liegt daran, dass nichts heruntergeladen werden kann.
Ereignisse:
- Für dieses Steuerelement gibt es keine Ereignisse.
Beispiel:
Hinweis
Vor dem Hochladen dieser Beispieldatei muss der Benutzer eine Bindung zwischen einem benutzerdefinierten Ressourcentyp und dem vorhandenen ConfigurationData-Attribut erstellen.
Das folgende Codesegment generiert ein Dateidownloadsteuerelement:
<!--Sample dynamic download control-->
<my:Control my:Name="SampleDynamicFileDownloadControl" my:TypeName="UocFileDownload" my:Caption="{Binding Source=schema, Path=ConfigurationData.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=ConfigurationData.Description, Mode=OneWay}" my:RightsLevel="{Binding Source=rights, Path=ConfigurationData}">
<my:Properties>
<my:Property my:Name="Text" my:Value="Download Dummy xml"/>
<my:Property my:Name="PromptedFileName" my:Value="DummyXML.xml"/>
<my:Property my:Name="ContentType" my:Value="text/xml"/>
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=ConfigurationData}"/>
</my:Properties>
</my:Control>
<!--End of dynamic download control -->
UocFileUpload
Name: UocFileUpload
Beschreibung: Dieses Steuerelement enthält ein Textfeld, in dem der Speicherort der lokalen Datei, die hochgeladen werden soll, eine Schaltfläche zum Durchsuchen der Datei und eine Schaltfläche zum Hochladen angezeigt wird. Wenn der Endbenutzer auf eine Schaltfläche "Durchsuchen" klickt, wird ein Fenster "Windows-Datei öffnen" angezeigt. Der Endbenutzer kann eine Datei auf dem lokalen Laufwerk auswählen, die hochgeladen werden soll. Wenn die Datei ausgewählt ist, wird der Speicherort der Datei im Textfeld angezeigt. Wenn auf die Schaltfläche "Hochladen" geklickt wird, wird die Datei in die clientseitige lokale Datenquelle hochgeladen. Der Dateiinhalt wird noch nicht an den Server übermittelt. Die empfohlenen Datentypen für die Verwendung dieses Steuerelements sind wie folgt: formatierte Zeichenfolgen (XML) oder Binärtypen.
Hinweis
Es gibt keinen Hinweis auf den Uploadstatus oder den Status. Wenn die Datei in die lokale Datenquelle hochgeladen wird, wird das Textfeld gelöscht.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
Value: Dies ist ein erforderliches Attribut. Es gibt die Schemaattributebindung auf dem Server an, auf den die Daten hochgeladen werden.
ContentType-: Dies ist ein optionales Attribut vom Typ String. Dies ist der Datentyp, auf dem die Datei auf dem Server gespeichert wird. Dies kann auf Text oder Binär festgelegt werden. Wenn die Eigenschaft fehlt, ist der Standardwert "Binary".
MaxFileSize: Dies ist ein optionales Attribut vom Typ String. MaxFileSize definiert, wie groß die hochgeladene Dateigröße sein kann. Wenn die Eigenschaft fehlt, beträgt die maximale Größe standardmäßig 1 MB (MB).
PromptedForNoValue: Dies ist ein optionales Attribut vom Typ String. Er definiert den Text, der dem Benutzer angezeigt wird, wenn eine Datei nicht hochgeladen wird.
Ereignisse:
- FileUploaded: Dieses Ereignis wird ausgegeben, wenn die Datei erfolgreich hochgeladen wurde.
Beispiel:
Hinweis
Damit der folgende Beispielcode funktioniert, müssen Sie ein neues Binärtypattribut namens "ABinaryAttribute" erstellen und dann eine neue Bindung zwischen einem benutzerdefinierten Ressourcentyp und diesem Attribut erstellen.
Das folgende Codesegment generiert ein Uploadsteuerelement:
<!--Sample dynamic upload control-->
<my:Control my:Name="SampleDynamicFileUploadControl" my:TypeName="UocFileUpload" my:Caption="{Binding Source=schema, Path=ABinaryAttribute.DisplayName, Mode=OneWay}" my:Description="{Binding Source=schema, Path=ABinaryAttribute.Description, Mode=OneWay}” my:RightsLevel="{Binding Source=rights, Path=ABinaryAttribute}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=ABinaryAttribute.Required}"/>
<my:Property my:Name="ContentType" my:Value="Binary"/>
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=ABinaryAttribute, Mode=TwoWay}"/>
</my:Properties>
</my:Control>
<!--End of dynamic upload control -->
UocFilterBuilder
Name: UocFilterBuilder
Beschreibung: Dies ist ein komplexes Steuerelement, mit dem der Benutzer einen MIM 2016 XPath-Ausdruck rendern kann. Einige XPath-Ausdrücke werden nicht unterstützt. Informationen zur Verwendung des Filter-Generators finden Sie in der Hilfe für den Filter-Generator.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
PermittedObjectTypes: Dadurch wird eine Liste der Ressourcentypen definiert, die in der Select-Anweisung eines Filter-Generators angezeigt werden sollen. Informationen zur Verwendung des Filter-Generators finden Sie in der Hilfe zum Filter-Generator. Die Zeichenfolge befindet sich im Format von ResourceTypeA, ResourceTypeB, wobei jeder Ressourcentyp durch ein Komma "," getrennt wird.
Wert: Dies ist der Wert, mit dem der Filter-Generator gerendert wird. Es wird nur eine Bindung mit Zeichenfolgentypdaten unterstützt, die einen XPath-Ausdruck enthalten. Das Filter-Attribut ist ein empfohlenes Attribut zum Binden dieses Steuerelements.
PreviewButtonVisible: Dies ist eine optionale boolesche Eigenschaft. Wenn diese Eigenschaft auf "false" festgelegt ist, wird dem Benutzer keine Vorschauschaltfläche angezeigt. Der Standardwert ist auf "true" festgelegt. Diese Schaltfläche kann in Kombination mit einem Listenansichtssteuerelement verwendet werden, um eine Vorschau der Ergebnisse eines XPath-Ausdrucks anzuzeigen.
ExcludeGroupMembership: Dies ist eine boolesche Eigenschaft. Wenn diese Eigenschaft auf "true" festgelegt ist, können Sie keinen Filter erstellen, der <Reference Attribute> (z. B. ResourceID) verwendet, mitglied <Group-Objekt>ist. Anders ausgedrückt: Wenn diese Eigenschaft auf "true" festgelegt ist, können Sie keinen Filter erstellen, der das Gruppenmitgliedschaftsverzeichnis verwendet.
PreviewButtonCaption: Dies ist eine optionale Zeichenfolge. Wenn PreviewButtonVisible auf "true" festgelegt ist, können Sie diese Eigenschaft verwenden, um der Schaltfläche einen angepassten Text zu verleihen. Der Text wird auf der Schaltfläche "Vorschau" angezeigt.
Ereignisse:
- OnFilterChanged: Dieses Ereignis wird ausgelöst, wenn sich der Inhalt des Filter-Generators ändert.
Beispiel:
Der folgende Beispielcode enthält ein UOCLabel-Steuerelement, einen einfachen Filter-Generator mit "PermittedObjectTypes" und eine Vorschaulistenansicht. Zeigen Sie die ListFilter-Eigenschaft und die Eigenschaft des Filter-Generator-Werts auf dasselbe Datenquellen-Attribut, um die beiden zu verknüpfen.
Hinweis
Bevor Sie diesen Beispielcode verwenden, erstellen Sie eine neue Bindung zwischen einem vorhandenen Filterattribut und einem benutzerdefinierten Ressourcentyp.
<!--Sample filter builder with preview list-->
<my:Control my:Name="ComplexFilterBuilderLabel" my:TypeName="UocLabel" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="Text" my:Value="This is a Filter Builder with preview."/>
</my:Properties>
</my:Control>
<my:Control my:Name="ComplexFilterBuilder" my:TypeName="UocFilterBuilder" my:RightsLevel="{Binding Source=rights, Path=Filter}" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="PermittedObjectTypes" my:Value="Person,Group" />
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=Filter, Mode=TwoWay}" />
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=Filter.Required, Mode=OneWay}" />
</my:Properties>
</my:Control>
<my:Control my:Name="FilterBuilderwithpreview" my:TypeName="UocListView" my:ExpandArea="true">
<my:Properties>
<my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName,ObjectType,AccountName" />
<my:Property my:Name="EmptyResultText" my:Value="There is no members according to the filter definition." />
<my:Property my:Name="PageSize" my:Value="10" />
<my:Property my:Name="ShowTitleBar" my:Value="false" />
<my:Property my:Name="ShowActionBar" my:Value="false" />
<my:Property my:Name="ShowPreview" my:Value="false" />
<my:Property my:Name="ShowSearchControl" my:Value="false" />
<my:Property my:Name="EnableSelection" my:Value="false" />
<my:Property my:Name="SingleSelection" my:Value="false" />
<my:Property my:Name="ItemClickBehavior" my:Value=" ModelessDialog "/>
<my:Property my:Name="ListFilter" my:Value="{Binding Source=object, Path=Filter}" />
</my:Properties>
</my:Control>
<!--end of sample filter builder with preview-->
UocHtmlSummary
Name: UocHtmlSummary
Beschreibung: Sie können dieses Steuerelement verwenden, um eine Zusammenfassungsseite auf einer RCDC-Seite zu definieren. Diese Zusammenfassungsseite wird angezeigt, nachdem der Endbenutzer eine Anforderung übermittelt hat. Dieses Steuerelement kann nur in einer Zusammenfassungsgruppierung verwendet werden, und es muss das einzige Steuerelement sein. Es wird dringend empfohlen, den bereitgestellten Beispielcode zu verwenden.
Hinweis
Dieses Steuerelement wurde nicht umfassend getestet.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
ModificationsXml: Diese Eigenschaft muss als {Binding Source=delta, Path=DeltaXml} formatiert werden, wobei Delta im Konfigurationsheader ObjectDataSource definiert ist.
TransformXsl-: Diese Eigenschaft ist als {Binding Source=summaryTransformXsl, Path=/}formatiert, wobei summaryTransformXsl im Konfigurationsheader "XmlDataSource" definiert ist.
Ereignisse:
- Für dieses Steuerelement gibt es keine Ereignisse.
Beispiel:
Ein Beispiel für dieses Steuerelement finden Sie im Beispiel für eine Zusammenfassungsgruppierung im Abschnitt "Gruppierungselement" dieses Dokuments.
UocHyperLink
Name: UocHyperLink
Beschreibung: Dies ist ein einfaches Hyperlinksteuerelement. Sie können dieses Steuerelement verwenden, um Informationen als Link anzuzeigen.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
ObjectReference-: Dies ist eine optionale Referenztypeigenschaft. Wenn auf eine gültige Ressource von der GUID verwiesen wird, die in dieser Eigenschaft definiert ist, bietet der Hyperlink dem Endbenutzer eine Möglichkeit, auf die Ressource zuzugreifen. Dies schließt sich gegenseitig mit der NavigateUrl-Eigenschaft aus.
Text-: Dies ist eine optionale Zeichenfolgentypeigenschaft. Mit dieser Eigenschaft definieren Sie den Text, der als Link angezeigt wird.
NavigateUrl-: Dies ist eine optionale Eigenschaft vom Typ String. Sie verwenden diese Eigenschaft, um die url des vollständigen Pfads zu definieren, mit der der Link verknüpft ist. Dies schließt sich gegenseitig mit der ObjectReference-Eigenschaft aus.
Ereignisse:
- Für dieses Steuerelement gibt es keine Ereignisse.
Beispiel:
Hinweis
Sie benötigen eine gültige GUID einer Ressource, mit der sie verknüpft werden kann. In diesem Fall wird der zweite Hyperlink mit einer gültigen GUID generiert. Der erste kann eine beliebige Website sein.
Das folgende Codesegment generiert einen Umleitungslink:
<!--Sample for a hyperlink that redirects page.-->
<my:Control my:Name="RedirectHyperlink" my:TypeName="UocHyperLink" my:Caption="Redirect Hyperlink" my:Description="This is a hyperlink that takes you to other pages.">
<my:Properties>
<my:Property my:Name="NavigateUrl" my:Value="http://www.microsoft.com"/>
<my:Property my:Name="Text" my:Value="Microsoft Home Page"/>
</my:Properties>
</my:Control>
<!--End of Sample for a hyperlink that redirect page-->
Das folgende Codesegment generiert einen Link, der auf eine Ressource verweist. Der explizite Verweis kann durch den Ausdruck {Binding Source=object, Path=Creator} ersetzt werden, um diesen mit einer Datenquelle zu binden. Dies kann nur gültig sein, wenn der Manager der Ressource vorhanden ist und es sich um einen Verweistypwert handelt.
<!--Sample for a hyperlink that reference object-->
<my:Control my:Name="ReferenceHyperlink" my:TypeName="UocHyperLink" my:Caption="Reference Hyperlink" my:Description="This is a hyperlink gives you an object view of the reference object">
<my:Properties>
<my:Property my:Name="ObjectReference" my:Value="e4e048b1-9e43-415e-806c-cf44c429c34c"/>
<my:Property my:Name="Text" my:Value="View a group in FIM 2010."/>
</my:Properties>
</my:Control>
<!--End of Sample for a hyperlink that reference object-->
UocIdentityPicker
Name: UocIdentityPicker
Beschreibung: Dieses Steuerelement besteht aus einem optionalen Auflösungsfeld und einem Fenster "Durchsuchen". Das optionale Feld "Auflösen" besteht aus einem optionalen Textfeld zum Eingeben der Identität, einer Schaltfläche "Auflösen", um die Identität aufzulösen, und einer Schaltfläche "Durchsuchen", um ein Popupfenster zum Durchsuchen aufzufordern. Das Fenster "Durchsuchen" ermöglicht es dem Benutzer, Identitäten über ein Listenansicht-Steuerelement auszuwählen. Die ausgewählte Identität aus dem Fenster "Durchsuchen" wird im Feld "Auflösen" angezeigt.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
UsageKeywords-: Dies ist eine optionale Zeichenfolgeneigenschaft. Sie können eine Liste von Suchbereichen definieren, die in der Ressourcenauswahl verwendet werden sollen, indem Sie eine Liste der Verwendungsstichwörter angeben, die von der SearchScopeConfiguration-Struktur unterstützt werden, wobei jedes Schlüsselwort durch ein Apostroph (') getrennt ist.
Filter-: Dies ist eine optionale Zeichenfolgeneigenschaft. Der Benutzer stellt einen XPath-Ausdruck bereit, um die Ressourcenauswahl so festzulegen, dass nur die Elemente angezeigt werden, die in einen definierten Bereich passen. Diese Eigenschaft schließt sich gegenseitig mit der UsageKeywords-Eigenschaft aus. Wenn der Suchbereich angewendet wird, hat diese Eigenschaft keine Auswirkung.
ResultObjectType-: Dies ist eine optionale Zeichenfolgeneigenschaft. Der Ressourcentyp wird zum Rendern von Ressourcen in der Popupdialogfeldliste verwendet. Dies wird mit dem Filter verwendet, um die Identitätsauswahl zu unterstützen, den vom Filter zurückgegebenen Ressourcentyp zu identifizieren und die Daten entsprechend zu rendern. Diese Eigenschaft schließt sich gegenseitig mit der UsageKeywords-Eigenschaft aus. Wenn der Suchbereich angewendet wird, hat dies keine Auswirkung. Die Zeichenfolge, die für diese Eigenschaft akzeptiert wird, ist ein beliebiger, gültiger Ressourcentypname, z. B. Person. Wenn erwartet wird, dass der Filter mehrere Ressourcentypen zurückgibt, wird "Resource" verwendet.
PreviewTitle: Dies ist der Vorschautitel, der in einer Listenansicht verwendet wird. Informationen zu dieser Eigenschaft finden Sie im Abschnitt "UocListView".
ListViewTitle-: Dies ist eine optionale Zeichenfolgeneigenschaft. Sie können diese Eigenschaft verwenden, um den Text zu definieren, der oben in der Listenansicht als Titel angezeigt wird.
Wert: Dies ist eine optionale Zeichenfolgeneigenschaft. Es wird empfohlen, dies mit einem Schemaattribute zu binden, um den Wert mit einer Datenquelle zu verbinden.
Modus: Dies ist eine optionale Zeichenfolgeneigenschaft. Mit dieser Eigenschaft können Sie definieren, ob ein Wert von der Identitätsauswahl oder mehreren Identitäten ausgewählt werden kann. SingleResult und MultipleResult sind die zulässigen Werte. Standardmäßig ist sie auf SingleResult festgelegt.
ObjectTypes: Dies ist eine optionale Eigenschaft vom Typ String. Sie können eine Liste der Ressourcentypen definieren, für die der Endbenutzer Einträge im Feld "Identitätsauswahl auflösen" auflösen kann. Die Liste besteht aus einer Liste von Ressourcentypnamen, die durch ein Komma "," getrennt sind.
AttributesToSearch-: Dies ist eine optionale Eigenschaft vom Typ String. Sie können eine Liste von Attributen definieren, die verwendet werden sollen, um das Element in der Identitätsauswahl aufzulösen, wobei es sich bei der Liste um eine Liste von Schemaattributen handelt, die durch ein Komma "," getrennt sind. Wenn "AttributesToSearch" beispielsweise auf
DisplayName, Aliasfestgelegt ist, kann der Benutzer die Elemente mitDisplayName = \<search value\>oderAlias=\<search value\>durchsuchen. Attributnamen, die hier eingegeben werden, sollten gültige Attribute für Zielressourcentypen der Datenquelle sein, die in der Value-Eigenschaft angegeben ist. Die Zielressourcentypen finden Sie im Feld "ObjectTypes". Alle Attribute müssen für alle ressourcentypen gültig sein, die im Feld "ObjectTypes" zitiert werden.ColumnsToDisplay-: Dies ist eine optionale Eigenschaft vom Typ String. Der Benutzer stellt eine Liste der Schemaattributenamen bereit, die durch ein Komma "," getrennt sind. Die hier definierten Attribute bilden die Spalte der Listenansicht in der Identitätsauswahl.
Zeilen: Dies ist eine optionale ganzzahlige Eigenschaft. Er funktioniert nur, wenn der Modus auf MultipleResult festgelegt ist. Verwenden Sie diese Eigenschaft, um die Höhe des Textfelds "Auflösen" auf eine bestimmte Größe in Zeicheneinheiten festzulegen.
MainSearchScreenText-: Dies ist eine optionale Zeichenfolgentypeigenschaft. Dies ist der angepasste Text, der angezeigt wird, während die Suche im Fenster "Durchsuchen" ausgeführt wird.
Ereignisse:
- SelectedObjectChanged: Dieses Ereignis wird ausgegeben, wenn der Benutzer die ausgewählten Ressourcen ändert.
Beispiel:
Hinweis
Damit dieses Beispiel funktioniert, müssen Sie eine neue Bindung zwischen dem Manager-Attribut und jedem benutzerdefinierten Ressourcentyp erstellen, für den dieser XML-Code gilt.
Im folgenden Codesegment wird eine Identitätsauswahl im SingleResult-Modus mithilfe der Eigenschaften Filter und ResultObjectType als Teil des RCDC generiert:
<!--Sample for a single-selection identity picker using Filter and Result Object Type-->
<my:Control my:Name="SingleSelectionIdentityPicker" my:TypeName="UocIdentityPicker" my:Caption="A Single Selection Identity Picker" my:Description="The user is allowed to select only one entry here." my:RightsLevel="{Binding Source=rights, Path=Manager}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=Manager.Required}"/>
<my:Property my:Name="Mode" my:Value="SingleResult" />
<!--Columns displayed in list view in pop-up window-->
<my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName, ObjectType" />
<!--Identities will be resolved against following attribute in the resolve textbox when resolve button is clicked.-->
<my:Property my:Name="AttributesToSearch" my:Value="DisplayName, AccountName" />
<!--single valued reference type attribute is used to bind the control-->
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=Manager , Mode=TwoWay}" />
<!--Scoping the list explicitly to All Persons name contains letter "e"-->
<my:Property my:Name="Filter" my:Value="/Person[contains(JobTitle, 'Manager')]"/>
<!--Result object type specify the type is Person-->
<my:Property my:Name="ResultObjectType" my:Value="Person"/>
<my:Property my:Name="ListViewTitle" my:Value="Select only one entry" />
<my:Property my:Name="PreviewTitle" my:Value="Entry selected:" />
</my:Properties>
</my:Control>
<!--End of sample for a single-selection identity picker.-->
Die folgende Abbildung zeigt eine Identitätsauswahl im MultipleResult-Modus:
Hinweis
Damit dieser Beispielcode funktioniert, müssen Sie das ExplicitMember-Attribut (ein mehrwertiges Verweisattribut) an den benutzerdefinierten Ressourcentyp binden. Erstellen Sie Suchbereiche, wobei die UsageKeyword-Eigenschaft auf "Person" und "Group" festgelegt ist.
Im folgenden Codesegment wird eine Identitätsauswahl im MultipleResult-Modus erstellt:
<!--Sample for a multiselection Identity Picker uses Search Scope-->
<my:Control my:Name="multiSelectionIdentityPicker" my:TypeName="UocIdentityPicker" my:Caption="A multi Selection Identity Picker" my:Description="The user is allowed to select more than one entry here" my:RightsLevel="{Binding Source=rights, Path=ExplicitMember}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=ExplicitMember.Required}"/>
<my:Property my:Name="Mode" my:Value="MultipleResult" />
<my:Property my:Name="Rows" my:Value="10" />
<!--There are existing search scopes that has key word "Person" and "Group" use both sets of search scopes here.-->
<my:Property my:Name="UsageKeywords" my:Value="Person,Group"/>
<!--Columns displayed in list view in pop-up window-->
<my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName, ObjectType" />
<!--Identities will be resolved against following attribute in the resolve textbox when resolve button is clicked.-->
<my:Property my:Name="AttributesToSearch" my:Value="DisplayName, AccountName" />
<!--multi valued reference type attribute is used to bind the control-->
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=ExplicitMember , Mode=TwoWay}" />
<my:Property my:Name="ResultObjectType" my:Value="Resource"/>
<my:Property my:Name="ListViewTitle" my:Value="Select multiple entries" />
<my:Property my:Name="PreviewTitle" my:Value="Entries selected" />
</my:Properties>
</my:Control>
<!--End of sample for a multiselection Identity Picker.-->
UocLabel
Name: UocLabel
Beschreibung: Dies ist ein einfaches, schreibgeschütztes Textbeschriftungssteuerelement. Es wird empfohlen, dieses Steuerelement zum Anzeigen schreibgeschützter Daten zu verwenden.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
Text-: Dies ist ein Zeichenfolgentyp-Attribut. Sie definieren diese Eigenschaft, indem Sie einen expliziten Zeichenfolgenwert angeben oder mit einer Datenquelle binden. Eine Beispielbindung, die den Wert dieser Eigenschaft zuweist, ist {Binding Source=object, Path=<gültiger Attributname>.
Ein Beispiel für das UocLabel-Steuerelement finden Sie im Abschnitt "Einfache Steuerelemente" im Abschnitt "Einfache Steuerelemente".
UocListView
Name: UocListView
Beschreibung: Dies ist ein erweitertes Listenansichtssteuerelement. Sie besteht aus einer einfachen Listenansicht, einer optionalen einfachen Suche, einem optionalen erweiterten Suchsteuerelement, einem optionalen Vorschaufeld für Die Auswahl und einer Aktionsschaltfläche. Die optionale einfache Suche besteht aus einem Suchbereich und einem einfachen Suchtextfeld. Das erweiterte Suchsteuerelement ist ein Filter-Generator. Die Listenansicht zeigt eine vordefinierte Liste von Ressourcen an. Es kann auch Suchergebnisse anzeigen, die aus den Suchsteuerelementen in diesem Steuerelement stammen. Die Aktionsschaltfläche definiert, welche Aktion basierend auf der Auswahl in der Listenansicht ausgeführt werden kann. Das Auswahlvorschaufeld zeigt an, welche Elemente aus der Listenansicht ausgewählt sind.
Wichtig
UocListView funktioniert nicht mit einzelwertigen Referenzattributen. Sie kann nur mit mehrwertigen Verweisattributen verwendet werden. Einwertige Referenzattribute finden Sie unter "UocIdentityPicker" in diesem Dokument.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
SelectedValue-: Dies ist eine optionale Eigenschaft vom Typ "string", die an ein mehrwertiges Verweis-Attribut gebunden ist, das eine Liste mit GUID-formatierten Zeichenfolgen akzeptiert.
PageSize: Dies ist eine optionale ganzzahlige Eigenschaft. Der Benutzer kann angeben, wie viele Einträge in ein Listenansichtssteuerelement auf eine Seite passen. Der Standardwert ist 10 Einträge. Eine positive ganze Zahl ist gültig.
UsageKeyword-: Dies ist eine optionale Eigenschaft vom Typ String. Der Benutzer kann eine Liste von Schlüsselwörtern angeben, die definieren, welcher Suchbereich im Listenansichts-Suchsteuerelement verwendet wird. Es gibt Suchbereichsressourcen auf dem FIM 2010-Server. Das Attribut für eine SearchScopeConfiguration-Struktur namens UsageKeyword wird verwendet, um einen Satz von Suchbereichen zu gruppieren. Die Listenansicht verwendet diese Liste von Schlüsselwörtern. Jedes Schlüsselwort wird durch ein Komma (,) getrennt. Dies ist das Verwendungsstichwort, das für den entsprechenden Suchbereich verwendet wird, den Sie in dieser Listenansicht anzeigen möchten. Dies ist nur wirksam, wenn die ShowSearchControl-Eigenschaft auf "true" festgelegt ist.
SearchControlAutoPostback-: Dies ist eine optionale boolesche Eigenschaft. Legen Sie den Wert dieser Eigenschaft auf "true" fest, um autopostback auszuführen, wenn eine Suche ausgelöst wird. Standardmäßig ist SearchControlAutoPostback auf "false" festgelegt.
EmptyResultText-: Dies ist eine optionale Eigenschaft vom Typ String. Standardmäßig ist sie auf "Keine Elemente" festgelegt, kann jedoch auf einen beliebigen Zeichenfolgenwert festgelegt werden. Dieser Text wird angezeigt, wenn ein Suchergebnis leer ist.
ButtonHeight-: Dies ist eine optionale ganzzahlige Eigenschaft. Legen Sie den Wert dieser Eigenschaft auf einen beliebigen positiven ganzzahligen Wert fest. Diese Eigenschaft definiert die Höhe von Schaltflächen in der Aktionsleiste in Pixeln. Der Standardwert beträgt 32 Pixel.
ButtonWidth-: Dies ist eine optionale ganzzahlige Eigenschaft. Legen Sie den Wert dieser Eigenschaft auf einen beliebigen positiven ganzzahligen Wert fest. Diese Eigenschaft definiert die Breite von Schaltflächen in der Aktionsleiste in Pixeln. Der Standardwert beträgt 32 Pixel.
CaptionImageMaxHeight-: Dies ist eine optionale ganzzahlige Eigenschaft. Legen Sie den Wert dieser Eigenschaft auf eine beliebige positive ganze Zahl fest. Diese Eigenschaft definiert die maximale Symbolhöhe einer optionalen Beschriftung. Der Standardwert beträgt 32 Pixel.
CaptionImageMaxWidth-: Dies ist eine optionale ganzzahlige Eigenschaft. Legen Sie den Wert dieser Eigenschaft auf eine beliebige positive ganze Zahl fest. Diese Eigenschaft definiert die maximale Symbolbreite einer optionalen Beschriftung. Der Standardwert beträgt 32 Pixel.
CaptionImageUrl-: Dies ist eine optionale Eigenschaft vom Typ String. Diese Eigenschaft definiert eine URL, die mit einem Bild verknüpft ist, das als Beschriftungsbild angezeigt wird.
PreviewTitle-: Dies ist eine optionale Eigenschaft vom Typ String. Mit dieser Eigenschaft definieren Sie den Text, der über dem Vorschaufeld der Auswahl angezeigt wird.
EnableSelection-: Dies ist eine optionale boolesche Eigenschaft. Mit dieser Eigenschaft können Sie definieren, ob sich eine Listenansicht im Auswahlmodus befindet. Wenn sich eine Listenansicht im Auswahlmodus befindet, wird in der äußerst linken Spalte der Listenansicht eine Spalte mit Kontrollkästchen angezeigt, und unten in der Listenansicht wird ein Vorschaufeld für die Auswahl angezeigt. Der Standardwert dieser Eigenschaft ist auf "true" festgelegt.
SingleSelection-: Dies ist eine optionale boolesche Eigenschaft. Wenn der Auswahlmodus für die Listenansicht aktiviert ist, beschränkt das Festlegen dieses Werts auf "true", damit der Endbenutzer nur ein Element aus der Liste auswählt. Standardmäßig ist der Wert dieser Eigenschaft auf "false" festgelegt. Dies bedeutet, dass der Endbenutzer standardmäßig mehrere Elemente aus der Liste auswählen kann.
RedirectUrl-: Dies ist eine optionale Eigenschaft vom Typ String. Verwenden Sie diese Eigenschaft, um eine Seite anzugeben, an die umgeleitet werden soll, wenn in der Liste auf ein linkes Element geklickt wird. Diese URL kann Platzhalter enthalten, die während der Laufzeit durch den tatsächlichen Wert ersetzt werden. Die Platzhalter sind wie folgt:
- {0} objectType
- {1} objectID
- {2} displayName
ShowTitleBar-: Dies ist eine optionale boolesche Eigenschaft. Verwenden Sie diese Eigenschaft, um anzugeben, ob die Titelleiste sichtbar sein soll. Der Standardwert dieser Eigenschaft ist false.
ShowActionBar-: Dies ist eine optionale boolesche Eigenschaft. Verwenden Sie diese Eigenschaft, um anzugeben, ob der Aktionsleistenbereich sichtbar sein soll. Der Standardwert dieser Eigenschaft ist true.
ShowPreview-: Dies ist eine optionale boolesche Eigenschaft. Verwenden Sie diese Eigenschaft, um anzugeben, ob der Vorschaubereich sichtbar sein soll. Der Standardwert dieser Eigenschaft ist true.
ShowSearchControl-: Dies ist eine optionale boolesche Eigenschaft. Verwenden Sie diese Eigenschaft, um anzugeben, ob das Suchsteuerelement sichtbar sein soll. Der Standardwert dieser Eigenschaft ist true.
ResultObjectType-: Dies ist eine optionale Eigenschaft vom Typ String. Verwenden Sie diese Eigenschaft, um den erwarteten Objekttyp der Suchergebnisse anzugeben. Der Standardwert dieser Eigenschaft ist Resource. Wenn das Suchergebnis mehrere Ressourcentypen enthält, sollte dieser Wert als Ressource angegeben werden.
ColumnsToDisplay-: Dies ist eine optionale Eigenschaft. Verwenden Sie diese Eigenschaft, um anzugeben, welche Attribute die Listenansicht als Spalten anzeigen soll. Der Standardwert dieser Eigenschaft ist DisplayName, ResourceType. Jede Spalte wird durch den Systemnamen eines Attributs dargestellt. Jede Spalte wird durch ein Komma "," getrennt. Sie müssen keinen Wert für diese Eigenschaft angeben, wenn die Listenansicht im Auswahlmodus verwendet wird. Im Auswahlmodus stammt die Spalteneinstellung aus dem SearchScopeColumn-Attribut des derzeit ausgewählten Suchbereichs.
ListFilter-: Dies ist eine optionale Eigenschaft vom Typ String. Dies ist der xpath, der zum Rendern der Listenansicht verwendet wird und nur wirksam ist, wenn die ShowSearchControl-Eigenschaft auf "false" festgelegt ist. Wenn dieser Wert angegeben wird, verwendet die Listenansicht diesen Eigenschaftswert für Abfragen, und die Listenansicht befindet sich nicht im Auswahlmodus. Der Filter kann entweder an ein Zeichenfolgenattribut der Ressource gebunden werden:
<my:Property my:Name="ListFilter" my:Value="{Binding Source=object, Path=Filter}"/>oder eine Zeichenfolge sein, die einige vordefinierte Umgebungsvariable enthält:
<my:Property my:Name="ListFilter" my:Value="/Approval[Request=''%ObjectID%'']"/>TargetAttribute-: Dies ist eine veraltete Eigenschaft. Der Wert sollte der Systemname eines mehrwertigen Attributs sein, auf das verwiesen wird. Es wird empfohlen, diese Eigenschaft nicht mehr zu verwenden. Beispiel: In der Gruppenverwaltung anstelle der folgenden Verwendung:
<my:Property my:Name="TargetAttribute" my:Value="ExplicitMember"/>Verwenden:
<my:Property my:Name=”ListFilter” my:Value=”/Group[ObjectID=’%ObjectID%’]/ExplicitMember”/>ItemClickBehavior: Dies ist eine optionale Eigenschaft vom Typ String. Verwenden Sie diese Eigenschaft, um anzugeben, ob sie auf ein Listenansichtselement klicken möchten, um einen Serverpostback auszulösen oder eine Detailansicht des Elements anzuzeigen. Zwei Optionswerte werden unterstützt: ModelessDialog und Server. Der Standardwert ist ModelessDialog.
SearchOnLoad-: Dies ist eine optionale boolesche Eigenschaft, die angibt, ob das Listenansichtssteuerelement beim Laden abfragen soll. Diese Eigenschaft gilt nur, wenn sich die Listenansicht im Auswahlmodus befindet. Der Standardwert für diese Eigenschaft ist true. Sie können es deaktivieren, wenn der Benutzer in der Regel Text in die Suche eingibt, um ein aussagekräftiges Ergebnis zu erhalten. In diesem Fall zeigt die Listenansicht zunächst eine Meldung an, um dem Benutzer mitzuteilen, wie eine Suche ausgeführt wird. Der Text kann durch die folgenden Eigenschaften angepasst werden:
MainSearchScreenText-: Diese optionale Zeichenfolgentypeigenschaft gilt nur, wenn SearchOnload auf "true" festgelegt ist. Diese Eigenschaft kann verwendet werden, um Text anzupassen, der in der Mitte der Listenansicht angezeigt wird, wenn die Listenansicht nicht automatisch durchsucht wird. Der Standardwert für diese Eigenschaft besteht darin, die Ressourcen mithilfe der Suche zu suchen, wie zuvor beschrieben. Sie können einen Wert angeben, um den Text für Ihr Szenario relevanter zu machen.
SubSearchScreenText-: Diese optionale Zeichenfolgentypeigenschaft wird verwendet, um den Text anzupassen, der nach der MainSearchScreenText-Eigenschaft angezeigt wird. In der Regel müssen Sie keinen Wert für diese Eigenschaft angeben, es sei denn, Sie möchten eine zusätzliche Anweisung zur Verwendung der Listenansicht hinzufügen.
Ereignisse:
- Für dieses Steuerelement gibt es keine Ereignisse.
Beispiel:
Beispiele für die Verwendung der Listenansicht zusammen mit dem UocFilterBuilder-Steuerelement als Vorschauliste finden Sie in den UocFilterBuilder-Beispielen weiter oben in diesem Dokument. Die UocListView kann auch ohne den Filter-Generator verwendet werden.
UocNumericBox
Name: UocNumericBox
Beschreibung: Dies ist ein einfaches Textfeld, das nur ganzzahlige Werte akzeptiert. Dieses Steuerelement unterstützt sowohl den schreibgeschützten Modus als auch den aktualisierbaren Modus.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
MaxValue-: Dies ist eine optionale ganzzahlige Eigenschaft. Verwenden Sie diese Eigenschaft, um eine clientseitige Überprüfung für das Steuerelement zu definieren. Der vom Endbenutzer eingegebene Wert darf diesen Wert nicht überschreiten. Sie können eine explizite ganze Zahl eingeben oder diese mit ganzzahligen Daten aus einer Datenquelle binden, indem Sie {Binding Source=schema, Path=IntegerMaximum} verwenden.
MinValue-: Dies ist eine optionale ganzzahlige Eigenschaft. Verwenden Sie diese Eigenschaft, um eine clientseitige Überprüfung für das Steuerelement zu definieren. Der vom Endbenutzer eingegebene Wert darf nicht niedriger als dieser Wert sein. Sie können eine explizite ganze Zahl eingeben oder diese mit ganzzahligen Daten aus einer Datenquelle binden, indem Sie {Binding Source=schema, Path=IntegerMinimum} verwenden.
DefaultValue-: Dies ist eine optionale ganzzahlige Eigenschaft. Verwenden Sie diese Eigenschaft, um einen Standardwert für das Steuerelement zu definieren, wenn das Steuerelement zum Erstellen neuer Daten verwendet wird. Dieser Wert kann nur explizit auf eine statische ganze Zahl festgelegt werden.
Wert: Dies ist eine optionale ganzzahlige Eigenschaft. Wenn Sie diese Daten mit einem ganzzahligen Typ aus einer Datenquelle binden, wird der Wert dieses Attributs angezeigt, wenn die Seite geladen wird, und anschließend nach der Übermittlung in der Datenquelle gespeichert.
Ereignisse:
- TextChanged: Dieses Ereignis wird ausgegeben, wenn sich der aktuelle Wert innerhalb des Steuerelements ändert.
Beispiel:
Hinweis
Der folgende Beispielcode generiert das erste numerische Feld. Das numerische Feld ist nicht mit einer Datenquelle oder schemainformationen verbunden.
<!--Sample for an explicit Numeric Box-->
<my:Control my:Name="SampleExplicitNumericBox" my:TypeName="UocNumericBox" my:Caption="An Explicit NumericBox" my:Description="This is a dummy numeric box that is not linked with data source.">
<my:Properties>
<my:Property my:Name="MinValue" my:Value="1"/>
<my:Property my:Name="MaxValue" my:Value="100"/>
<my:Property my:Name="DefaultValue" my:Value="1"/>
</my:Properties>
</my:Control>
<!--End of sample for an explicit Numeric Box.-->
Der folgende Beispielcode generiert das zweite numerische Feld.
Hinweis
Damit dieses Beispiel funktioniert, müssen Sie zuerst ein neues Ganzzahl-Typ-Attribut namens "AnIntegerAttribute" erstellen und an den benutzerdefinierten Ressourcentyp binden.
<!--Sample for a dynamically rendered numeric box-->
<my:Control my:Name="SampleDynamicNumericBox" my:TypeName="UocNumericBox" my:Caption="{Binding Source=schema, Path=AnIntegerAttribute.DisplayName}" my:Description="{Binding Source=schema, Path=AnIntegerAttribute.Description}" my:RightsLevel="{Binding Source=rights, Path=AnIntegerAttribute}">
<my:Properties>
<my:Property my:Name="MaxValue" my:Value="{Binding Source=schema, Path=AnIntegerAttribute.IntegerMaximum}"/>
<my:Property my:Name="MinValue" my:Value="{Binding Source=schema, Path=AnIntegerAttribute.IntegerMinimum}"/>
<my:Property my:Name="DefaultValue" my:Value="1"/>
<my:Property my:Name="Value" my:Value="{Binding Source=object, Path=AnIntegerAttribute, Mode=TwoWay}"/>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=AnIntegerAttribute.Required}"/>
</my:Properties>
</my:Control>
<!--End of sample for a dynamically numeric box.-->
UocPictureBox
Name: UocPictureBox
Beschreibung: Dieses Steuerelement wird zum Rendern von Bild-, Binärtypdaten verwendet. Es wird empfohlen, dieses Steuerelement mit Binärtypdaten zu verwenden. Das Bild kann entweder durch eine bereitgestellte Bild-URL, binärtypdaten oder die Attributquelle gerendert werden, die Bildtypdaten enthält.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
ImageUrl-: Dies ist eine optionale Eigenschaft vom Typ String. Geben Sie die URL des Zielbilds ein.
MaxHeight: Dies ist eine optionale Zeichenfolgentypeigenschaft. Es definiert die maximale Höhe des Bilds, das in Pixeln gerendert werden soll.
MaxWidth: Dies ist eine optionale Eigenschaft vom Typ String. Es definiert die maximale Breite des Bilds, das in Pixeln gerendert werden soll.
ImageData-: Dies ist eine Binärtypeigenschaft. Verwenden Sie diese Eigenschaft, um eine Datenquelle mit dem angezeigten Bild zu binden. Die gebundene Datenquelle muss binär sein. Sie können dieses Feld auch verwenden, um ein Bild explizit festzulegen, indem Sie Daten im Byte[]-Format bereitstellen.
ImageResource-: Dies ist eine optionale Binärtypeigenschaft.
AlternativeText-: Dies ist eine optionale Eigenschaft vom Typ String. Diese Eigenschaft wird als Alternativtext angezeigt, wenn das Bild nicht angezeigt werden kann.
Ereignisse:
- Für dieses Steuerelement gibt es keine Ereignisse.
Beispiel:
Hinweis
Um dieses Beispiel zu verwenden, müssen Sie über eine vorhandene Bilddatenbindung mit dem Steuerelement verfügen.
Das folgende Codesegment generiert ein Bildfeld-Steuerelement, das eine Datenquelle mit dem Steuerelement bindet:
<!--Sample for a Picture Box control binding with a data source-->
<my:Control my:Name="SamplePictureBoxImageData" my:TypeName="UocPictureBox" my:RightsLevel="{Binding Source=rights, Path=Photo}">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="100" />
<my:Property my:Name="MaxWidth" my:Value="100" />
<my:Property my:Name="ImageData" my:Value="{Binding Source=object, Path=Photo}" />
</my:Properties>
</my:Control>
<!--End of Sample for a Picture Box control-->
Das folgende Codesegment generiert ein Bildfeld-Steuerelement, das ein URL-Bild mit dem Steuerelement bindet:
<!--Sample for a Picture Box control bind with explicit URL-->
<my:Control my:Name="SamplePictureBoxImageUrl" my:TypeName="UocPictureBox">
<my:Properties>
<my:Property my:Name="MaxHeight" my:Value="100" />
<my:Property my:Name="MaxWidth" my:Value="100" />
<my:Property my:Name="ImageUrl" my:Value="http://www.microsoft.com/dummypicture.jpg" />
</my:Properties>
</my:Control>
<!--End of Sample for a Picture Box control-->
UocRadioButtonList
Name: UocRadioButtonList
Beschreibung: Dies ist eine einfache Optionsfeldliste. Die Auswahlmöglichkeiten schließen sich in dieser Liste gegenseitig aus. Dieses Steuerelement wird empfohlen, wenn Benutzer fünf oder weniger Optionen haben, aus denen Sie wählen können. Andernfalls wird UOCListView empfohlen.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
ValuePath-: Der Wertpfad wird auf "Wert" festgelegt. Sie bindet mit dem Feld "Wert" aus dem Option-Element, wie in diesem Abschnitt beschrieben.
CaptionPath-: Der Wertpfad ist auf "Caption" festgelegt. Sie bindet mit dem Caption-Feld aus dem Option-Element, wie in diesem Abschnitt beschrieben.
HintPath: Der Wertpfad ist auf "Hint" festgelegt. Sie bindet mit dem Feld "Hint" aus dem Option-Element, wie in diesem Abschnitt beschrieben.
SelectedValue: Der aktuell ausgewählte Wert. Dies ist eine erforderliche Eigenschaft vom Typ String. Diese Eigenschaft bindet mit Zeichenfolgendaten aus der Datenquelle.
Ereignisse:
SelectedIndexChanged: Das Ereignis tritt auf, wenn sich das ausgewählte Optionsfeld ändert.
CheckedChanged: Wenn das Optionsfeld seinen Zustand ändert, wird dieses Ereignis ausgegeben.
Optionen:
Es können nur zwei Optionen Elemente als Optionen für dieses Steuerelement vorhanden sein. Die Struktur eines Options-Elements finden Sie unter Options-Element.
Wert: Das Wertfeld in einem einzelnen Option-Element muss auf "True" oder "False" festgelegt werden.
Beschriftungs-: Dies kann ein beliebiger Zeichenfolgenwert sein.
Hinweis: Dies kann ein beliebiger Zeichenfolgenwert sein.
Beispiel:
Hinweis
Damit dieses Beispiel funktioniert, müssen Sie ein neues boolesches Attribut, ABooleanAttribute, erstellen und mit Ihrem benutzerdefinierten Ressourcentyp binden.
Im folgenden Codesegment wird eine Optionsschaltflächenliste erstellt:
<!--Sample for option button list control-->
<my:Control my:Name="SampleRadioButtonList" my:TypeName="UocRadioButtonList" my:Caption="{Binding Source=schema, Path=ABooleanAttribute.DisplayName}" my:Description="{Binding Source=schema, Path=ABooleanAttribute.Description}" my:RightsLevel="{Binding Source=rights, Path=ABooleanAttribute}">
<my:Options>
<my:Option my:Value="False" my:Caption="Set Value To False" my:Hint="By selecting this option, you are setting the value of the attribute to false." />
<my:Option my:Value="True" my:Caption="Set Value To True" my:Hint="By selecting this option, you are setting the value of the attribute to true." />
</my:Options>
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=ABooleanAttribute.Required}" />
<my:Property my:Name="ValuePath" my:Value="Value" />
<my:Property my:Name="CaptionPath" my:Value="Caption" />
<my:Property my:Name="HintPath" my:Value="Hint" />
<my:Property my:Name="SelectedValue" my:Value="{Binding Source=object, Path=ABooleanAttribute, Mode=TwoWay}" />
</my:Properties>
</my:Control>
<!--End of Sample for option button list control-->
UocSimpleRadioButton
Name: UocSimpleRadioButton
Beschreibung: Dies ist ein einfaches Optionsfeld-Steuerelement. Die Verwendung dieses Steuerelements ähnelt einem einfachen Kontrollkästchen. Es gibt zwei Optionsfelder, die nebeneinander mit der Textbezeichnung angezeigt werden. Das Binden des Steuerelements an boolesche Datentypdaten wird empfohlen.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
TrueText-: Dies ist eine optionale Zeichenfolgentypeigenschaft. Dies ist der Text, der angezeigt wird, wenn die Optionsschaltfläche ausgewählt ist.
FalseText-: Dies ist eine optionale Zeichenfolgentypeigenschaft. Dies ist der Text, der angezeigt wird, wenn die Optionsschaltfläche nicht ausgewählt ist.
SelectedItem-: Dies ist eine optionale boolesche Eigenschaft. Dieser Wert gibt an, dass die Optionsschaltfläche ausgewählt ist. Dies kann mit booleschen Daten aus einer Datenquelle gebunden werden. Der Standardwert ist auf "false" festgelegt.
Ereignisse:
- CheckedChanged: Wenn sich der Status der Optionsschaltfläche von ausgewählt in nicht ausgewählt oder umgekehrt ändert, wird dieses Signal ausgegeben.
Beispiel:
Hinweis
Damit das Beispiel funktioniert, müssen Sie ein neues boolesches Attribut ABooleanAttribute erstellen und an ihren benutzerdefinierten Ressourcentyp binden. Die RCDC-Daten werden auf denselben benutzerdefinierten Ressourcentyp angewendet.
Das folgende Codesegment generiert eine Optionsschaltfläche:
<!--Sample for simple option button control-->
<my:Control my:Name="SampleSimpleRadioButton" my:TypeName="UocSimpleRadioButton" my:Caption="{Binding Source=schema, Path=ABooleanAttribute.DisplayName}" my:Description="{Binding Source=schema, Path=ABooleanAttribute.Description}" my:RightsLevel="{Binding Source=rights, Path=ABooleanAttribute}">
<my:Properties>
<my:Property my:Name="Required" my:Value="{Binding Source=schema, Path=ABooleanAttribute.Required}" />
<my:Property my:Name="FalseText" my:Value="False"/>
<my:Property my:Name="TrueText" my:Value="True"/>
<my:Property my:Name="SelectedItem" my:Value="{Binding Source=object, Path=ABooleanAttribute, Mode=TwoWay}" />
</my:Properties>
</my:Control>
<!--End of Sample for simple option button control-->
UocTextBox
Name: UocTextBox
Beschreibung: Dies ist ein einfaches Textfeld, das Zeichenfolgentypeingaben unterstützt. Es wird empfohlen, dieses Steuerelement zum Binden mit Zeichenfolgentypdaten zu verwenden.
Eigenschaften:
Alle allgemeinen Eigenschaften: Informationen zu diesen Eigenschaften finden Sie unter Allgemeine Eigenschaften.
MaxLength: Dies ist ein optionales Attribut vom Typ Integer. Diese Eigenschaft gibt die maximale Länge für eine Zeichenfolgeneingabe an. Der Standardwert für diese Eigenschaft beträgt 128 Zeichen.
Text-: Dies ist eine optionale Zeichenfolgentypeigenschaft. Dies ist der Text, der im Textfeld angezeigt wird. Sie können eine explizite Zeichenfolge definieren, die beim anfänglichen Laden des Steuerelements im Textfeld angezeigt wird, oder sie an ein Schemaattribute eines Zeichenfolgentyps binden.
Zeilen: Dies ist eine optionale ganzzahlige Eigenschaft. Diese Eigenschaft definiert die Höhe des Textfelds in Zeicheneinheiten. Der Standardwert ist ein Zeichen.
Spalten: Dies ist eine optionale ganzzahlige Eigenschaft. Diese Eigenschaft definiert die Breite des Textfelds in Zeicheneinheiten. Der Standardwert ist 20 Zeichen.
Wrap: Dies ist eine optionale boolesche Eigenschaft. Durch Festlegen des Werts dieser Eigenschaft auf "true" aktiviert der Benutzer das Word-Umbruchfeature im Textfeld. Der Standardwert dieser Eigenschaft ist auf "true" festgelegt.
UniquenessValidationXPath-: Dies ist eine optionale Zeichenfolgentypeigenschaft. Er akzeptiert einen gültigen FIM XPath-Filterausdruck und stellt sicher, dass die Werteingabe durch den Benutzer innerhalb der Ressourcen eindeutig ist, die sich im Bereich des Filters befinden. Um beispielsweise sicherzustellen, dass der vom Benutzer angeforderte Anzeigename in allen E-Mail-aktivierten Sicherheitsgruppen in der FIM Service DB eindeutig ist, verwenden Sie die XPath-
/Group[DisplayName=’%VALUE%’ and Type=’MailEnabledSecurity’. Die Überprüfungsaktion wird ausgeführt, wenn der Benutzer die Seite verlässt. Diese Eigenschaft wird nur im RCDC zum Erstellen einer Ressource unterstützt.UniquenessErrorMessage-: Dies ist eine optionale Eigenschaft vom Typ String. Diese Zeichenfolge wird verwendet, um eine Fehlermeldung anzuzeigen, wenn die UniquenessValidationXPath-Überprüfung fehlschlägt und expliziter Text oder eine Zeichenfolgenressourcenvariable sein kann. Wenn diese Eigenschaft nicht angegeben ist, ist die Standardfehlermeldung für eine fehlgeschlagene Überprüfung "%VALUE% bereits vorhanden. Versuchen Sie es bitte anders."
Ereignisse:
- TextChanged: Dieses Ereignis wird ausgegeben, wenn der Text im Textfeld geändert wird.
Beispiel:
Ein vollständiges Beispiel für dieses Steuerelement finden Sie im Abschnitt "Einfache Steuerelemente".
Anhang A: Standardmäßiges XSD-Schema
Dieser Abschnitt zeigt das vollständige XSD-Schema für alle Standard-RCDCs, die mit Microsoft Identity Manager 2016 SP1 bereitgestellt werden.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema targetNamespace="http://schemas.microsoft.com/2006/11/ResourceManagement" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="http://schemas.microsoft.com/2006/11/ResourceManagement" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:attribute name="TypeName" type="my:requiredString"/>
<xsd:attribute name="Name" type="my:requiredAlphanumericString"/>
<xsd:attribute name="Parameters" type="xsd:string"/>
<xsd:attribute name="DisplayAsWizard" type="xsd:boolean"/>
<xsd:attribute name="Caption" type="xsd:string"/>
<xsd:attribute name="AutoValidate" type="xsd:boolean"/>
<xsd:attribute name="Enabled" type="xsd:string"/>
<xsd:attribute name="Visible" type="xsd:string"/>
<xsd:attribute name="IsSummary" type="xsd:boolean"/>
<xsd:attribute name="IsHeader" type="xsd:boolean"/>
<xsd:attribute name="HelpText" type="xsd:string"/>
<xsd:attribute name="Link" type="xsd:string"/>
<xsd:attribute name="Description" type="xsd:string"/>
<xsd:attribute name="ExpandArea" type="xsd:boolean"/>
<xsd:attribute name="Hint" type="xsd:string"/>
<xsd:attribute name="AutoPostback" type="xsd:string"/>
<xsd:attribute name="RightsLevel" type="my:requiredString"/>
<xsd:attribute name="Value" type="xsd:string"/>
<xsd:attribute name="Handler" type="my:requiredString"/>
<xsd:attribute name="ImageUrl" type="xsd:string"/>
<xsd:attribute name="RedirectUrl" type="xsd:string"/>
<xsd:attribute name="ClickBehavior" type="xsd:string"/>
<xsd:attribute name="EnableMode" type="xsd:string"/>
<xsd:attribute name="ValueType" type="xsd:string"/>
<xsd:attribute name="Condition" type="xsd:string"/>
<xsd:element name="ObjectControlConfiguration">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:ObjectDataSource" minOccurs="0" maxOccurs="32"/>
<xsd:element ref="my:XmlDataSource" minOccurs="0" maxOccurs="32"/>
<xsd:element ref="my:Panel"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:TypeName"/>
<xsd:anyAttribute processContents="lax" namespace="http://www.w3.org/XML/1998/namespace"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ObjectDataSource">
<xsd:complexType>
<xsd:sequence/>
<xsd:attribute ref="my:TypeName"/>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="XmlDataSource">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Panel">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Grouping" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:DisplayAsWizard"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:AutoValidate"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Grouping">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Help" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Control" minOccurs="1" maxOccurs="256"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Description"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:IsHeader"/>
<xsd:attribute ref="my:IsSummary"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Help">
<xsd:complexType>
<xsd:sequence/>
<xsd:attribute ref="my:HelpText"/>
<xsd:attribute ref="my:Link"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Control">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Help" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:CustomProperties" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Options" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Buttons" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Properties" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="my:Events" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:TypeName"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:Description"/>
<xsd:attribute ref="my:ExpandArea"/>
<xsd:attribute ref="my:Hint"/>
<xsd:attribute ref="my:AutoPostback"/>
<xsd:attribute ref="my:RightsLevel"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="CustomProperties">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace" processContents="lax"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Options">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Option" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="my:ValueType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Option">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Value"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Hint"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Buttons">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Button" minOccurs="1" maxOccurs="8"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Button">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Caption"/>
<xsd:attribute ref="my:Hint"/>
<xsd:attribute ref="my:ImageUrl"/>
<xsd:attribute ref="my:ClickBehavior"/>
<xsd:attribute ref="my:RedirectUrl"/>
<xsd:attribute ref="my:Enabled"/>
<xsd:attribute ref="my:Visible"/>
<xsd:attribute ref="my:EnableMode"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Properties">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Property" minOccurs="1" maxOccurs="32"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Property">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Value"/>
<xsd:attribute ref="my:Condition"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Events">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="my:Event" minOccurs="1" maxOccurs="16"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Event">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="my:Name"/>
<xsd:attribute ref="my:Handler"/>
<xsd:attribute ref="my:Parameters"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="requiredString">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="requiredAlphanumericString">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Za-z0-9_]{1,128}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="requiredAnyURI">
<xsd:restriction base="xsd:anyURI">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="requiredBase64Binary">
<xsd:restriction base="xsd:base64Binary">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Anhang B: Standardzusammenfassung XSL
Dieser Abschnitt zeigt die vollständige Zusammenfassungs-XSL, die mit Microsoft Identity Manager 2016 SP1 bereitgestellt wird.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:template name="output-attribute-value">
<xsl:param name="attribute"/>
<xsl:param name="type"/>
<xsl:choose>
<xsl:when test="$type='Binary'">
<xsl:value-of select="$attribute" disable-output-escaping="yes"/>
</xsl:when>
<xsl:when test="$type='Text'">
<xsl:text xml:space="preserve" disable-output-escaping="yes">(text data)</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="translate($attribute,' ',' ')" disable-output-escaping="yes"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="output-modified-value">
<xsl:param name="name"/>
<xsl:param name="attribute1"/>
<xsl:param name="text1"/>
<xsl:param name="attribute2"/>
<xsl:param name="text2"/>
<xsl:param name="type"/>
<tr class="listViewRow" style="height:22px;">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="$name" disable-output-escaping="yes"/>
</td>
<xsl:choose>
<xsl:when test="$attribute1 and $attribute1!=''">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute1"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:when>
<xsl:otherwise>
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:copy-of select="$text1"/>
</td>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$attribute2 and $attribute2!=''">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute2"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:when>
<xsl:otherwise>
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:copy-of select="$text2"/>
</td>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="$name" disable-output-escaping="yes"/>
</td>
<xsl:choose>
<xsl:when test="$attribute1 and $attribute1!=''">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute1"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:when>
<xsl:otherwise>
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:copy-of select="$text1"/>
</td>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$attribute2 and $attribute2!=''">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute2"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:when>
<xsl:otherwise>
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:copy-of select="$text2"/>
</td>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</tr>
</xsl:template>
<xsl:template name="output-localized-attribute-value">
<xsl:param name="locale"/>
<xsl:param name="attribute"/>
<xsl:param name="type"/>
<tr class="listViewRow" style="height:22px;">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="$locale" disable-output-escaping="yes"/>
</td>
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="$locale" disable-output-escaping="yes"/>
</td>
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="$attribute"/>
<xsl:with-param name="type" select="$type"/>
</xsl:call-template>
</td>
</xsl:if>
</tr>
</xsl:template>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="ModifiedAttributes[@ActionType='Create']">
<!-- expected XML
<ModifiedAttributes ActionType="Create">
<Attribute Name="[attribute's system name]" DisplayName="[attribute's display name]" DataType="[all kinds of ILM data type]" InitializedValue="[the value]"/>
other <Attribute> elements
</ModifiedAttributes>
-->
<table cellspacing="0" cellpadding="3" class="commonSummaryListViewGridBorder">
<tr align="left" class="listViewHeader" style="height:22px;">
<th class="commonSummaryListViewHeaderCellBR">Attribute</th>
<th class="commonSummaryListViewHeaderCellBR">Value</th>
</tr>
<xsl:for-each select="ModifiedAttributes/Attribute">
<xsl:sort select="@DisplayName" order="ascending"/>
<tr class="listViewRow" style="height:22px;">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<xsl:if test="count(LocalizedValue)!=0">
<td class="commonSummaryListViewCellBR ms-vb">
<table cellspacing="0" style="width:100%">
<tr class="listViewHeader">
<th align="left" class="commonSummaryListViewHeaderCellBR">Language</th>
<th align="left" class="commonSummaryListViewHeaderCellBR">Status</th>
</tr>
<xsl:if test="@InitializedValue and @InitializedValue != ''">
<xsl:call-template name="output-localized-attribute-value">
<xsl:with-param name="locale" select="@Locale"/>
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-localized-attribute-value">
<xsl:with-param name="locale" select="@Locale"/>
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="../@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
<xsl:if test="count(LocalizedValue)=0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</td>
</xsl:if>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<xsl:if test="count(LocalizedValue)!=0">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<table cellspacing="0" style="width:100%">
<tr class="listViewHeader">
<th align="left" class="commonSummaryListViewHeaderCellBR">Language</th>
<th align="left" class="commonSummaryListViewHeaderCellBR">Status</th>
</tr>
<xsl:if test="@InitializedValue and @InitializedValue != ''">
<xsl:call-template name="output-localized-attribute-value">
<xsl:with-param name="locale" select="@Locale"/>
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-localized-attribute-value">
<xsl:with-param name="locale" select="@Locale"/>
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="../@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
<xsl:if test="count(LocalizedValue)=0">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:call-template name="output-attribute-value">
<xsl:with-param name="attribute" select="@InitializedValue"/>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</td>
</xsl:if>
</xsl:if>
</tr>
</xsl:for-each>
</table>
</xsl:when>
<xsl:when test="ModifiedAttributes[@ActionType='Modify']">
<!-- expected XML
<ModifiedAttributes ActionType="Modify">
<SingleAttribute Name="[attribute's system name]" DisplayName="[attribute's display name]" DataType="[all kinds of ILM data type]" InitializedValue="[the old value]" SetValue="[the new value]"/>
other <SingleAttribute> elements
<MultipleAttribute Name="[attribute's system name]" DisplayName="[attribute's display name]" DataType="[all kinds of ILM data type]" InsertedItem="[inserted items separated by ';']" RemovedItem="[removed items separated by ';']"/>
other <MultipleAttribute> elements
</ModifiedAttributes>
-->
<table class="commonSummaryListViewGridBorder" cellspacing="0" cellpadding="3">
<xsl:if test="ModifiedAttributes[count(SingleAttribute)!=0]">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Single-Value Attributes</th>
<th class="commonSummaryListViewHeaderCellBR">Old Value</th>
<th class="commonSummaryListViewHeaderCellBR">New Value</th>
</tr>
<xsl:for-each select="ModifiedAttributes/SingleAttribute">
<xsl:sort select="@DisplayName" order="ascending"/>
<xsl:if test="count(LocalizedValue)!=0">
<tr class="listViewRow">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<td colSpan="2">
<table cellspacing="0" cellpadding="0" style="width:100%">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Language</th>
<th class="commonSummaryListViewHeaderCellBR">Old Value</th>
<th class="commonSummaryListViewHeaderCellBR">New Value</th>
</tr>
<xsl:if test="(@InitializedValue and @InitializedValue !='') or (@SetValue and @SetValue != '')">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="../@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<td colSpan="2">
<table cellspacing="0" style="width:100%">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Language</th>
<th class="commonSummaryListViewHeaderCellBR">Old Value</th>
<th class="commonSummaryListViewHeaderCellBR">New Value</th>
</tr>
<xsl:if test="(@InitializedValue and @InitializedValue !='') or (@SetValue and @SetValue != '')">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="../@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
</tr>
</xsl:if>
<xsl:if test="count(LocalizedValue)=0">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@DisplayName"/>
<xsl:with-param name="attribute1" select="@InitializedValue"/>
<xsl:with-param name="text1">(no initial value)</xsl:with-param>
<xsl:with-param name="attribute2" select="@SetValue"/>
<xsl:with-param name="text2">(value removed)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:if>
<xsl:if test="ModifiedAttributes[count(MultipleAttribute)!=0]">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Multiple-Value Attributes</th>
<th class="commonSummaryListViewHeaderCellBR">Removed Items</th>
<th class="commonSummaryListViewHeaderCellBR">Inserted Items</th>
</tr>
<xsl:for-each select="ModifiedAttributes/MultipleAttribute">
<xsl:sort select="@DisplayName" order="ascending"/>
<xsl:if test="count(LocalizedValue)!=0">
<tr class="uocSummaryTitleTR">
<xsl:if test="position() mod 2 != 0">
<td class="commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<td>
<table cellspacing="0" style="width:100%">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Language</th>
<th class="commonSummaryListViewHeaderCellBR">Removed Items</th>
<th class="commonSummaryListViewHeaderCellBR">Inserted Items</th>
</tr>
<xsl:if test="(@RemovedItem and @RemovedItem!='') or (@InsertedItem and @InsertedItem!='')">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
<xsl:if test="position() mod 2 != 1">
<td class="ms-alternating commonSummaryListViewCellBR ms-vb">
<xsl:value-of select="@DisplayName" disable-output-escaping="yes"/>
</td>
<td>
<table cellspacing="0" style="width:100%">
<tr align="left" class="listViewHeader">
<th class="commonSummaryListViewHeaderCellBR">Language</th>
<th class="commonSummaryListViewHeaderCellBR">Removed Items</th>
<th class="commonSummaryListViewHeaderCellBR">Inserted Items</th>
</tr>
<xsl:if test="(@RemovedItem and @RemovedItem!='') or (@InsertedItem and @InsertedItem!='')">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="LocalizedValue">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@Locale"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:for-each>
</table>
</td>
</xsl:if>
</tr>
</xsl:if>
<xsl:if test="count(LocalizedValue)=0">
<xsl:call-template name="output-modified-value">
<xsl:with-param name="name" select="@DisplayName"/>
<xsl:with-param name="attribute1" select="@RemovedItem"/>
<xsl:with-param name="text1">(no removed item)</xsl:with-param>
<xsl:with-param name="attribute2" select="@InsertedItem"/>
<xsl:with-param name="text2">(no inserted item)</xsl:with-param>
<xsl:with-param name="type" select="@DataType"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:if>
</table>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>