2009-06-09 15 views
9

मेरे पास एक डाटाग्रिडव्यू है जो एक linq क्वेरी से लौटाए गए डेटा से भरा हो जाता है। यदि क्वेरी कोई परिणाम नहीं देती है तो मैं एक संदेशबॉक्स प्रदर्शित करना चाहता हूं। क्या यह देखने का कोई तरीका है कि डेटाग्रिडव्यू खाली है या नहीं?सी # डेटाग्रिड व्यू चेक करें यदि

सादर

+0

क्या यह एएसपी नेट या विंडोज फॉर्म है? – SLaks

उत्तर

23

आप पता लगा सकते हैं अगर यह DataGridView में पंक्तियों की संख्या की जाँच करके खाली है। यदि myDataGridView.Rows.Count == 0 तो आपका डेटाग्रिड व्यू खाली है।

0

आप डेटाग्रिडव्यू की पंक्तियों की गणना कर सकते हैं।

यद्यपि आप भी DataGridView की EmptyDataText संपत्ति की जांच के लिए चाहते हो सकता है। यह आपको एक संदेशबॉक्स दिखा सकता है।

1

Linq परिणामों के आधार पर, आप DataGridView छिपाने के लिए और (एक शाब्दिक या कुछ और की तरह) कुछ अन्य नियंत्रण बताते हैं कि संदेश से पता चलता कर सकते हैं। अगर आप किसी प्रकार का संदेशबॉक्स पॉपअप चाहते हैं, तो आपको वहां कुछ जावास्क्रिप्ट फेंकना होगा।

+0

देख नहीं सकता है कि क्यों jscript की आवश्यकता होगी, कभी भी – Goober

1

जवाब का एक बहुत यहाँ Rows.Count के लिए एक संदर्भ है। आम तौर पर, इससे कोई समस्या नहीं होती है और ज्यादातर मामलों में ऐसा करने के लिए एक ओवरकिल होता है जो मैं सुझा रहा हूं।

लेकिन this document में वर्णित कारणों के लिए यह एक अच्छा विचार Rows.Count कॉल करने के लिए करता है, तो DataGridView अक्सर एक (स्मृति रूपरेखा मैं एक समय पहले उस लेख को मान्य करने के लिए किया था में >~ 5000 कोशिकाओं) डेटा के बहुत है नहीं हो सकता।

बचें System.Windows.Forms.DataGridViewSelectedCellCollection की Count संपत्ति का उपयोग कर चयनित कोशिकाओं की संख्या निर्धारित करने के लिए। इसके बजाय, DataGridView.GetCellCount विधि का उपयोग करें और DataGridViewElementStates.Selected मान में पास करें। इसी तरह, चयनित पंक्ति और कॉलम संग्रह तक पहुंचने के बजाय DataGridViewRowCollection.GetRowCount और DataGridViewColumnCollection.GetColumnCount विधियों का चयन चयनित तत्वों की संख्या निर्धारित करने के लिए करें।

ऐसे मामलों में आप

myDataGridView1.Rows.GetRowCount(.) == 0 

उपयोग कर सकते हैं आप तेजी से बदलते डेटा या डेटा (या बुरा, तेजी से बदलते डेटा की बड़ी राशि) की एक बड़ी राशि के साथ काम नहीं कर रहे हैं तो बस पंक्तियाँ का उपयोग करें। गणना - यह बहुत ज्यादा चोट नहीं पहुंचाता है।

0

यह करना चाहिए:

dataGridView1.RowCount == 0 
2

पता चल सके कि DGV खाली है विकल्प AllowUserToAddRows सही पर सेट है, तो काम नहीं करता है की DGV.Rows.Count विधि।

फिर आप इस तरह खाली के लिए जाँच AllowUserToAddRows = false निष्क्रिय करने के लिए है:

if (dataGridView1.Rows.Count != 0 && dataGridView1.Rows != null) 
1

// इस देता पंक्तियों गिनती = 1

if (dataGridView1.Rows.Count != 0 && dataGridView1.Rows != null) 

// तो अंत में मैं कोड के रूप में नीचे और यह काम करता modifieded मेरे लिए

if(dataGridView1.Rows.Count>1 && dataGridView1.Rows != null) 
संबंधित मुद्दे