Mon formulaire a 2 grilles dessus. Lorsque vous sélectionnez un enregistrement dans la première grille, il remplit la deuxième grille avec les enregistrements associés. Cette grille secondaire a une colonne "PEERGROUP" et contiendra des valeurs comme "1", "2", etc.Comment créer une liste de valeurs uniques à partir d'une grille?
Je dois m'assurer qu'un utilisateur a sélectionné au moins 1 enregistrement appartenant à chaque groupe.
Je suis coincé à essayer de construire une liste contenant les valeurs d'ID de groupe unique:
function CheckSelectionForGroups(gridName)
{
//Get rows in grid
var view = $('#' + gridName).data('kendoGrid').dataSource.view();
//Array to store the all distinct groups in the grid
var listOfGroups = [];
var listIndex = 0;
//Loop over the rows in the grid
for (var i = 0; i < view.length; i++)
{
//If the group is found in our list already, do nothing
if (listOfGroups[view[i].PEERGROUP])
continue;
//If the group was not found in our list, add it to the list.
listOfGroups[listIndex] = view[i].PEERGROUP;
listIndex = listIndex + 1;
}
//TODO - Loop over user selection
// and compare groups against list of groups
}
Et voici une capture d'écran de certaines valeurs:
(Note: Le tableau est incomplet, car si je fais une capture d'écran après le traitement de la ligne suivante, il contiendrait incorrectement 3 valeurs: "1"
, "1"
, et "2"
)
Donc dans ce cas, je veux que listOfGroups
ne contienne que les valeurs "1"
et "2"
. L'instruction if
dans ma boucle for
n'évalue jamais à true. I suspect Javascript lance "1"
à un 1
et essaie de tirer l'élément de listOfGroups
à l'index 1
. Mais je ne sais pas comment réparer ça?