我的表单上有2个网格。从第一个网格中选择记录时,它将使用相关记录填充第二个网格。这个二级网格有一个" PEERGROUP"列,并包含" 1"," 2"等值。
我需要确保用户选择了至少1个属于每个组的记录。
我一直试图建立一个包含唯一组ID值的列表:
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
}
以下是一些值的屏幕截图:
(注意:数组不完整,因为如果我在处理完下一行后截取屏幕截图,则会错误地包含3个值:"1"
,"1"
和"2"
)< / p>
因此,在这种情况下,我希望listOfGroups
仅包含值"1"
和"2"
。我的if
循环中的for
语句永远不会计算为true。我怀疑 Javascript正在向"1"
投射1
,并且正在尝试从索引listOfGroups
的{{1}}中提取元素。但我不知道如何解决这个问题?
答案 0 :(得分:1)
您可以使用对象收集ID,然后使用Object.keys
获取这些ID的数组:
var dummyObject = {};
for (var i = 0; i < view.length; i++) {
dummyObject[view[i].PEERGROUP] = 0;
}
var listOfGroups = Object.keys(dummyObject);