2009-02-04 10 views
7

मेरे पास 1640 आइटम कहने वाला एक टेबल है। मैंनेBindingSource.Filter के बाद DataGridView की दृश्य पंक्ति गणना कैसे प्राप्त करें?

bindingSource.Filter = "some filter query string"; 

और अधिकांश पंक्तियां 400 पंक्तियों को छोड़कर गायब हो गईं। मैं उपयोगकर्ता को "1640 आइटम 400 दिखा रहा हूं" के रूप में बताने में सक्षम होना चाहता हूं क्योंकि वे कुछ टेक्स्टबॉक्स क्लिक करते हैं जो फ़िल्टर स्ट्रिंग को बदलते हैं और इसलिए डेटा में कौन सी पंक्तियां दिखाई देती हैं, ग्रिडव्यू ऑब्जेक्ट (आईट्यून्स की तरह, लेकिन चिकित्सा डेटा के लिए, शैलियों/कलाकार/एल्बम फ़िल्टरिंग गाने)।

मैंने बाध्यकारी स्रोत का उपयोग करने की कोशिश की। यह हमेशा 1640 है चाहे फ़िल्टर स्ट्रिंग को सेट किया गया हो (भले ही बहुत कम पंक्तियों को वांछित के रूप में दिखाया गया हो)। मैंने DataGridView.Rows में सभी पंक्तियों पर लूपिंग करने की कोशिश की और केवल उन पंक्तियों की गणना की जो दृश्यमान हैं, लेकिन यह अभी भी 1640 तक है।

मुझे यह जानकारी कहां मिल सकती है?

ध्यान दें कि मैं एसक्यूएल का उपयोग नहीं कर रहा हूं लेकिन बाध्यकारी स्रोत। डेटासोर्स डेटाटेबल के चारों ओर लिपटे डेटाव्यू से डेटासोर्स है (डेटा से एक्ससेट से डेटासेट से)।

+0

मैं एक बग था जहां शुरुआत में एक बार छोड़कर उस कोड को बुलाया नहीं जा रहा था! ऊप्स! गिनती खोजने के कम से कम दो तरीके हैं। मेरा जवाब देखें –

उत्तर

1

फ़िल्टर किए गए आइटम को एक अलग डेटाटेबल में जोड़ने और फ़िल्टर किए गए आइटमों के लिए उस पर गिनती करने के बारे में।

3

जारेड,

मैं हाल ही में यह बहुत ही बात करना था। मेरे लिए क्या काम किया गया था, मैंने फ़िल्टर लागू करने के बाद DataGridView.Rows.Count प्रॉपर्टी का उपयोग कर रहा था।

क्या आप अपना डेटा स्रोत बाइंडिंगसोर्स या डेटाग्रिड व्यू की डेटासोर्स प्रॉपर्टी में सेट कर रहे हैं? यह बाध्यकारी स्रोत होना चाहिए।

HTH -jay

+0

यह बहुत अच्छा काम किया! – TWood

1

मैं और ऊपर कुछ खराब कर दिया है। जे सही है:

dataGridViewCases.Rows.Count 

काम करता है, के रूप में करता है:

bindingSource.Count 
14

इस प्रयास करें: datagridviewname.Rows.GetRowCount(DataGridViewElementStates.Visible);

+1

धन्यवाद इससे मदद मिली – user3813249

+1

यह समाधान स्वीकृत उत्तर से काफी बेहतर है, क्योंकि यह डेटाटेबल को डुप्लिकेट नहीं करता है। तालिका को डुप्लिकेट करने की कोई आवश्यकता नहीं है, और इस प्रकार आपके पास केवल दो गुना अधिक स्मृति का उपयोग होता है। – Chad

0

आप बस अपने bindingSource की गणना संपत्ति का उपयोग की आवश्यकता है ...

ExampleBindoneSource.Count() 
संबंधित मुद्दे