2017-08-24 3 views
1

私のフォームに2つのグリッドがあります。最初のグリッドからレコードを選択すると、2番目のグリッドに関連するレコードが挿入されます。このセカンダリグリッドには「PEERGROUP」列があり、「1」、「2」などの値が含まれます。グリッドから一意の値のリストを作成するにはどうすればいいですか?

すべてのグループに属するレコードを少なくとも1つ選択しておく必要があります。

私はユニークなグループID値を含むリストを構築しようとしているにこだわっている:

enter image description here

(注:配列

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"を含むことになるので、不完全です。

この場合、listOfGroupsには値"1""2"しか含まれません。私のforループ内のifステートメントはtrueに評価されません。 I 容疑者 Javascriptは"1"から1にキャストされ、listOfGroupsから要素1に要素を引き込もうとしています。しかし、私はそれを修正する方法を知らない?

答えて

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); 
関連する問題