2016-10-11 1 views
0

Ich habe ein Kit-Angebotsprodukt in CRM 2011 und versuche eine Funktion aufzurufen, wenn die zugehörige Produktansicht aktualisiert wird.crm 2011 js - Verknüpfte Rasteransicht bei Aktualisierung abrufen

enter image description here

enter image description here

In den F12 Debug-Tool, die ich die Raster-ID sehen kann, ist 'crmGrid_productassociation_association':

enter image description here

Aber der folgende js Code scheint nicht zu funktionieren:

var grid = document.getElementById("crmGrid_productassociation_association").control; 
if (grid != null) 
{ 
    alert("success"); 
} 

Und wenn ich diesen Code auf Seite Last laufen:

console.dir(Xrm.Page.ui.controls.get()); 

Die crmGrid_productassociation_association Steuerung in der Liste der Steuerelemente nicht angezeigt wird. Stattdessen werden nur die Steuerelemente für das ursprüngliche Angebotsprodukt angezeigt. Kann jemand eine js-Funktion bei einer verknüpften Aktualisierung der Grid-Ansicht aufrufen?

Antwort

0

Für diejenigen von euch fragen, ich zugehörigen Netze in CRM 2011 mit JS bekommen konnte, müssen Sie eine Funktion, die wie folgt aussieht:

function reloadKitProducts() { 
    var iframe = document.getElementById('areaKitsFrame'); 

    if (iframe == null || iframe.readyState != "complete") { 
     setTimeout(reloadKitProducts, 3000); 
     return; 
    } 

    var subgrid = iframe.contentWindow.document.getElementById('crmGrid_productassociation_association').control.add_onRefresh(getKitProductsOnLineItemChange); 
} 

Sie müssen die ID des iframe zu erhalten, die enthält das Untergitter. Dies ist die Hauptleitung hier:

var subgrid = iframe.contentWindow.document.getElementById('crmGrid_productassociation_association').control.add_onRefresh(getKitProductsOnLineItemChange); 

Es lädt nur, wenn Sie auf den Link in der Navigationsleiste klicken, und es dauert noch eine oder zwei Sekunden zu laden, so dass Sie eine rekursive Timeout zu implementieren.

Verwandte Themen