2011-10-30 17 views
6

में चयनित पंक्तियों का डेटा प्राप्त करें मेरे पास एक स्लीग्रिड है जिसमें कुछ पंक्तियां फ़िल्टर (डेटाव्यू) द्वारा छिपी हुई हैं।slickgrid

जब मैं अब ग्रिड की getSelectedRows विधि को कॉल करता हूं तो मुझे स्पष्ट रूप से चयनित पंक्तियों का सूचकांक मिलता है। लेकिन मुझे चयनित पंक्तियों के वास्तविक डेटा की आवश्यकता है।

उत्तर

19

आप कुछ इस तरह करना चाहिए:

var selectedData = [], 
    selectedIndexes; 

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

अभी selectedData चर चयनित पंक्तियों के लिए डेटा है।

+1

आह, grid.getData, कि विधि मैं खोज रहा था था पर क्लिक करें। लेकिन grid.getData [value] काम नहीं किया था मुझे grid.getData() का उपयोग करना पड़ा। GetItem (value)। – Preli

+0

माफी माँगता हूं, मैं एंड्रयू चाइल्ड का कांटा (https://github.com/andrewchilds/SlickGrid) का उपयोग करता हूं और यह कोड इस पर अच्छा काम करता है। – matma

+0

मुझे लगता है कि 'grid.getData() [value] 'और' grid.getData() के बीच का अंतर। GetItem (value)' ग्रिड में भंडारण के लिए उपयोग किए जाने वाले प्रकार से संबंधित है: सरणी के लिए पूर्व कार्य, बाद में Slick के लिए ।आँकड़ों का खाका। मेरा मतलब है, मैं अनुमान लगा रहा हूँ; मैं पूरी तरह से गलत हो सकता था, लेकिन इसे आजमाएं। –

1

आप भी इस लाइन चाहते प्रत्येक पाश में बजाय ग्रिड वस्तु से GetData() का उपयोग करने का DataView से डेटा खींचने के लिए, के बाद से है कि कांटा के आधार पर असंगत प्रतीत होता है का उपयोग कर सकते हैं:

var selectedData = [], 
    selectedIndexes; 

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

असल में, मेरा मानना ​​है कि आप getItemByIdx का उपयोग करना चाहते हैं, ItemById नहीं प्राप्त करें। getItemByIdx को इंडेक्स द्वारा डेटा प्राप्त होगा, जबकि ITemById को आपके डेटा को बनाते समय आपके द्वारा दिए गए अद्वितीय आईडी द्वारा डेटा प्राप्त होता है। यदि आप प्रत्येक आइटम के लिए निर्दिष्ट आईडी ग्रिड में इसके सूचकांक के बराबर हैं तो वे वही काम करेंगे। हालांकि, मेरे मामले में, वे मेल नहीं खाते। हालांकि कोड के लिए धन्यवाद। – 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

समाधान @matma प्रदान किया गया है यदि आप DataView का उपयोग नहीं कर रहे हैं तो ठीक काम करता है। यह वास्तव में एक गलती नहीं है। आपका समाधान शायद बेहतर है हालांकि यह हमेशा काम करेगा। – 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

संबंधित मुद्दे