_XDocumentEventSink2_Event.OnLoad, événement
Survient après le chargement d'un formulaire Microsoft Office InfoPath 2007, mais avant l'initialisation des vues.
Espace de noms : Microsoft.Office.Interop.InfoPath.SemiTrust
Assembly : Microsoft.Office.Interop.InfoPath.SemiTrust (dans microsoft.office.interop.infopath.semitrust.dll)
Syntaxe
Event OnLoad As _XDocumentEventSink2_OnLoadEventHandler
Dim instance As _XDocumentEventSink2_Event
Dim handler As _XDocumentEventSink2_OnLoadEventHandler
AddHandler instance.OnLoad, handler
event _XDocumentEventSink2_OnLoadEventHandler OnLoad
Remarques
Ce gestionnaire d'événements permet aux utilisateurs d'annuler une opération.
Si la propriété ReturnStatus de l'objet DocReturnEventObject a pour valeur false, InfoPath annule le chargement du formulaire. Si une erreur se produit dans le code de l'événement OnLoad, InfoPath l'ignore et s'appuie sur la propriété ReturnStatus. Si la propriété ReturnStatus n'est pas définie de manière explicite, la valeur par défaut true est utilisée.
Remarque |
---|
Lorsque l'événement OnLoad se produit, la vue n'est pas initialisée et la transformation XSL (XSLT) utilisée pour la vue n'est pas encore chargée. L'objet XDocument n'est ajouté à la collection XDocumentsCollection qu'une fois l'événement OnLoad déclenché. L'objet XDocument est toutefois accessible pendant l'événement OnLoad. |
Important : |
---|
Cet événement nécessite un niveau de sécurité Autorisation totale. Pour définir ce niveau de sécurité, choisissez Options de formulaire dans le menu Outils de la fenêtre de création InfoPath et sélectionnez ensuite Autorisation totale dans l'onglet Sécurité. Un formulaire Autorisation totale doit être installé ou signé électroniquement. |
Exemple
Dans l'exemple suivant, le gestionnaire d'événements OnLoad est utilisé pour déterminer si le formulaire a été signé électroniquement et si ce n'est pas le cas, pour initialiser certaines valeurs de date à l'aide d'une combinaison de fonctions et de fonctions personnalisées :
[InfoPathEventHandler(EventType=InfoPathEventType.OnLoad)]
public void OnLoad(DocReturnEvent e)
{
// Avoid DOM updates when the document has been digitally signed.
if (thisXDocument.IsSigned)
{
return;
}
string today = thisXDocument.Util.Date.Today().ToString();
initializeNodeValue("/sls:salesReport/sls:date", today);
}
Cet exemple de gestionnaire d'événements Onload repose sur deux fonctions personnalisées : initializeNodeValue et setNodeValue.
private void initializeNodeValue(string xpath, string strValue)
{
IXMLDOMNode xmlNode = thisXDocument.DOM.selectSingleNode(xpath);
// Set the node value *ONLY* if the node is empty.
if (xmlNode.text == "")
{
setNodeValue(xmlNode, strValue);
}
}
private void setNodeValue(IXMLDOMNode xmlNode, string strValue)
{
if (xmlNode == null)
{
return;
}
// The xsi:nil needs to be removed before we set the value.
if (strValue != "" && xmlNode.attributes.getNamedItem("xsi:nil") != null)
{
xmlNode.attributes.removeNamedItem("xsi:nil");
}
// Setting the value would mark the document as dirty.
// Let's do that if the value has really changed.
if (xmlNode.text != strValue)
{
xmlNode.text = strValue;
}
}
Voir aussi
Référence
_XDocumentEventSink2_Event, interface
Membres _XDocumentEventSink2_Event
Microsoft.Office.Interop.InfoPath.SemiTrust, espace de noms