Evento _XDocumentEventSink2_Event.OnLoad
Generato quando un modulo di Microsoft Office InfoPath 2007 è stato caricato, ma prima che venga inizializzata una visualizzazione.
Spazio dei nomi: Microsoft.Office.Interop.InfoPath.SemiTrust
Assembly: Microsoft.Office.Interop.InfoPath.SemiTrust (in microsoft.office.interop.infopath.semitrust.dll)
Sintassi
Event OnLoad As _XDocumentEventSink2_OnLoadEventHandler
Dim instance As _XDocumentEventSink2_Event
Dim handler As _XDocumentEventSink2_OnLoadEventHandler
AddHandler instance.OnLoad, handler
event _XDocumentEventSink2_OnLoadEventHandler OnLoad
Osservazioni
Questo gestore eventi consente di annullare un'operazione.
Se la proprietà ReturnStatus dell'oggetto DocReturnEventObject è impostata su false, InfoPath annulla il caricamento del modulo. Se si verifica un errore nel codice dell'evento OnLoad, l'errore viene ignorato e viene utilizzata la proprietà ReturnStatus. Se la proprietà ReturnStatus non è impostata esplicitamente, viene utilizzato il valore predefinito true.
![]() |
---|
Quando si verifica l'evento OnLoad, la visualizzazione non viene inizializzata e la trasformazione XSL (XSLT) utilizzata per la visualizzazione non viene caricata. L'oggetto XDocument non viene aggiunto all'insieme XDocumentsCollection finché non viene eseguito l'evento OnLoad. Tuttavia, l'oggetto XDocument è disponibile durante l'evento OnLoad. |
![]() |
---|
Questo evento richiede il livello di protezione Attendibilità completa. Per impostare questo livello di protezione, scegliere Opzioni modulo dal menu Strumenti nella finestra di progettazione di InfoPath, quindi selezionare Attendibilità completa nella scheda Protezione. Un modulo completamente attendibile deve essere installato o firmato digitalmente. |
Esempio
Nell'esempio seguente, il gestore eventi OnLoad viene utilizzato per determinare se al modulo è stata aggiunta una firma digitale. In caso negativo, vengono inizializzati alcuni valori di data utilizzando una combinazione di funzioni e funzioni personalizzate:
[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);
}
Questo esempio del gestore eventi Onload dipende da due funzioni personalizzate: initializeNodeValue e 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;
}
}
Vedere anche
Riferimenti
Interfaccia _XDocumentEventSink2_Event
Membri _XDocumentEventSink2_Event
Spazio dei nomi Microsoft.Office.Interop.InfoPath.SemiTrust