2016-06-16 5 views
0

Ich habe eine Schaltfläche auf einem Entitätsformular, die ein CRM-Modal öffnet. Ich muss Daten aus dem IFrame in diesem Modal erstellen, ich habe viele Möglichkeiten ausprobiert. I enthalten ClientGlobalContext.js.aspx Referenz in der IFrame html, ich habe auch versucht, mitHolen Sie Daten aus dem übergeordneten Formular in einem Popup CRM Dynamics 2015

$.each(parent.window.frames, function (i, val) { 
       if (parent.window.frames[i].Xrm.Page.data.entity != null) { 
}); 

window.parent.Xrm.Page ... 
window.top.opener.frames[0].Xrm.Page... //here window top opener is null 

window.parent.opener.crmForm.all.name.DataValue //window parent opener is null 

Gibt es noch andere Optionen?

Antwort

0

Können Sie zeigen, wie Ihr Modal erstellt wird? Ist dies ein jQuery-UI-Modal, das einen Frame auf der Seite oder etwas wie window.showModalDialog (veraltet!) Einfügt?

Angenommen, ein Dialog irgendwo im selben "oberen" Rahmen, so behandle ich das. Nehmen wir an, ich habe ein Formularskript im Account-Datensatz. In meiner onload Funktion konfigurierte I ISV_Account_Form_onload:

// Return some data from the form 
function ISV_GetAccountData(){ 
    return { 
    Name: Xrm.Page.getAttribute('name').getValue() 
    }; 
} 

// Runs onload 
function ISV_Account_Form_onload{ 
    // Define my function on the top window 
    top.ISV_GetAccountData = ISV_GetAccountData; 
} 

Da ist in meinem Inline-Frame würde ich nennen:

var accountData = top.ISV_GetAccountData(); 

Dies auch aus einem Pop-up-Fenster arbeiten kann:

var accountData = top.opener.top.ISV_GetAccountData(); 

Der Kürze halber habe ich ausgeschlossen, die Funktion zu bereinigen, wenn das Formular entladen wird. Stellen Sie sicher, dass die Funktion vor dem Aufruf usw. definiert ist.