2010-12-03 15 views
0

En tant que débutant JScript, j'ai un problème avec une sous-grille dans MS CRM 2011.Récupérer les lignes de sous-maille crm2011 avec JScript

J'ai une forme avec une sous-grille et OnSave de cette forme, je veux faire une boucle sur toutes les lignes du sous-réseau.

Comment puis-je faire cela avec JScript? Ou est-ce possible d'une autre manière, ex plugin?

Thx

Répondre

0

Vous pouvez vérifier les valeurs sous-maille lors de l'enregistrement en procédant comme suit:

var gridControl = document.getElementById('subgrid_id').control; 
var ids = gridControl.get_allRecordIds(); 
for(i = 0; i < ids.length; i++) { 
    var cellValue = gridControl.getCellValue('column_name', ids[i]); 
    // logic 
} 

faire sur la charge est un peu plus difficile car subgrids sont de manière asynchrone chargés et ne sont pas susceptibles d'être fait le chargement lorsque l'événement de formulaire onload se déclenche. Vous pouvez vérifier la grille périodiquement si pour voir quand il a fait le chargement en appelant une fonction comme suit dans votre formulaire onload:

function subGridOnload() { 
    var grid = document.getElementById('subgrid_id'); 
    if (grid.readyState!="complete") { 
     // delay one second and try again. 
     setTimeout(subGridOnload, 1000); 
     return; 
    } 

    // logic 
} 
+0

Renvoie uniquement les ID des enregistrements présents dans la 1ère page droite ..? Qu'en est-il des identifiants des enregistrements présents dans la page suivante de la sous-grille? –

+0

Cela ne fait que retourner la première page, précisément ce que l'OP essayait de contourner – Dpeif

1

Voici l'exemple de code que vous pouvez faire sur Enregistrer de la forme

var gridControl = document.getElementById('grdrelatedcontacts').control; 
for (var intRowNumber = 0; intRowNumber < gridControl.getRecordsFromInnerGrid().length; intRowNumber++) 
    for (var intCellNumber = 0; intCellNumber < gridControl.getRecordsFromInnerGrid()[intRowNumber][3].cells.length; intCellNumber++) 
     alert(gridControl.getRecordsFromInnerGrid()[intRowNumber][3].cells[intCellNumber].outerText); 
+0

Comment sait-on que l'ID est 'grdrelatedcontacts'? c'est-à-dire, où puis-je obtenir l'ID de ma grille de ???? –

+0

grdrelatedContact est le nom de la grille que vous pouvez trouver lorsque vous êtes sur la personnalisation du formulaire, il suffit de cliquer sur la grille et vous trouverez le nom de la grille –

0

Utilisez un appel de repos et récupérez les enregistrements correspondants: S