2011-10-30 257 views
6

フィルタ(DataView)によって一部の行が非表示になっている滑りグリッドがあります。slickgridで選択した行のデータを取得します。

グリッドのgetSelectedRowsメソッドを呼び出すと、視覚的に選択された行のインデックスが取得されます。しかし、私は選択された行の実際のデータが必要です。

答えて

19

あなたはこのような何かをする必要があります。

var selectedData = [], 
    selectedIndexes; 

selectedIndexes = _grid.getSelectedRows(); 
jQuery.each(selectedIndexes, function (index, value) { 
    selectedData.push(_grid.getData()[value]); 
}); 

を今selectedData変数は、選択した行のデータが含まれています。

そのフォークに応じて一貫性のないと思われるので、あなたはまた、代わりにグリッドオブジェクトからのgetData()を使用してのデータビューからデータをプルする.eachループにこのラインを使用することができ
+1

ああ、grid.getData、それは私が探していた方法だっクリックします。グリッド.getData [値]が機能しませんでしたgrid.getData()。getItem(値)を使用する必要がありました。 – Preli

+0

私はAndrew Childのフォーク(https://github.com/andrewchilds/SlickGrid)を使用しています。このコードはうまくいきます。 – matma

+0

'grid.getData()[value]'と 'grid.getData()。getItem(value)'の違いは、グリッドの格納に使用される型に関係していると思います。前者は配列で、後者はSlick .DataView。つまり、私は推測している。私は全く間違っているかもしれませんが、試してみてください。 –

1

var selectedData = [], 
    selectedIndexes; 

selectedIndexes = _grid.getSelectedRows(); 
jQuery.each(selectedIndexes, function (index, value) { 
    selectedData.push(_dataView.getItemById(value)); 
}); 
+2

実際、getItemByIdxではなくgetItemByIdxを使用したいと思います。 getItemByIdxはインデックスでデータを取得し、getItemByIdはデータを作成する際に渡した一意のIDでデータを取得します。各アイテムに指定したIDがグリッド内のインデックスと等しい場合、同じことが実行されます。しかし、私の場合、彼らは一致しませんでした。しかし、コードをありがとう。 – dallin

+0

問題はありません、男!それがあなたのために働くことを望みます。 – Axle

3

あなたは間違いがあります。それは "getDataItem"でなく "getData"である必要があります。

var selectedData = [],enter code here`selectedIndexes; 

selectedIndexes = _grid.getSelectedRows(); 
jQuery.each(selectedIndexes, function (index, value) { 
    selectedData.push(_grid.getDataItem(value)); 
}); 
+0

DataViewを使用していない場合、@matmaのソリューションはうまく動作します。それは間違いではありません。あなたのソリューションはおそらくより良いですが、それはいつもうまくいくでしょう。 – idbehold

0

他のコントロールのようなグリッドからアクセスする場合。ボタン

var selectRow = gridInstance.getSelectedRows(); 
alert(gridInstance.getDataItem(selectRow).columnName) 
1
hObjMarcado = (grid.getSelectedRows()); 
for(var a_id in hObjMarcado) { 
    vres.push(dataview.getItem(hObjMarcado[a_id])); 
    //la opcion getItem obtiene el elemento especifico, 
    //aun con filtro. 
} 
return vres; 
+2

英語で書くようにしてください – Leeor

関連する問題