2011-06-15 17 views
6

पर डेटासेट को बाध्य करता है मेरे पास लगभग 15 कॉलम वाला डेटा सेट है, और मेरे पास एएसपीनेट ग्रिडव्यू भी है। मैं सोच रहा था कि क्या कोई जानता है कि मैं डेटासेट के साथ ग्रिडव्यू कैसे पॉप्युलेट कर सकता हूं, लेकिन मुद्दा यह है कि मैं डेटासेट से कुछ कॉलम चाहता हूं।एएसपीनेट प्रोग्रामेटिक रूप से ग्रिडव्यू

पल im पर

सिर्फ

GridView1.DataSource = ds; 
    GridView1.DataBind(); 

कर, लेकिन यह स्पष्ट रूप से gridview को डाटासेट से सभी स्तंभों को बांधता है।

+2

फिर आप डेटा सेट में उन कुछ कॉलम का चयन कर सकते हैं। – Naresh

उत्तर

10

के नाम से सेट करना होगा, तो आप रनटाइम पर कॉलम बनाना चाहते हैं? इस प्रयास करें:

http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx

वैकल्पिक रूप से, आप aspx में समय से आगे अपने gridview कॉन्फ़िगर कर सकते हैं:

<Columns> 
    <asp:BoundField DataField="ProductName" HeaderText="Product" SortExpression="ProductName" /> 
    <asp:BoundField DataField="CategoryName" HeaderText="Category" ReadOnly="True" SortExpression="CategoryName" /> 
    <asp:BoundField DataField="UnitPrice" DataFormatString="{0:c}" HeaderText="Price" HtmlEncode="False" SortExpression="UnitPrice" /> 
</Columns> 

और सुनिश्चित करें कि आप गलत पर AutoGenerateColumns सेट किया है।

7

डिफ़ॉल्ट रूप से ग्रिड व्यू डेटा के आधार पर स्वचालित रूप से सभी कॉलम उत्पन्न करेगा।

GridView.AutoGenerateColumns = false सेट करें और फिर GridView.Columns संपत्ति के माध्यम से इच्छित कॉलम को परिभाषित करें।

1

ग्रिड ऑटोगनेटेड कॉलम को गलत पर सेट करें, और कॉलम जिन्हें आप ग्रिडव्यू डिज़ाइनर या कोड में उपयोग करना चाहते हैं सेट करें। लेकिन आपको डेटाफिल्ड प्रॉपर्टी को कॉलम पर

2

दो तरीके मैं क्या आप बदल सकते हैं और किस तरह से यह है रहने के लिए, इस पर निर्भर ऐसा करने के लिए, देख सकते हैं:

1) आप क्वेरी/proc कि डाटासेट उत्पन्न करता है के नियंत्रण है, और अन्य ग्रिड/पृष्ठों को प्रतिकूल रूप से प्रभावित किए बिना ऐसा कर सकते हैं, क्वेरी को संशोधित करें ताकि वह केवल आपके द्वारा उपयोग किए जाने वाले कॉलम को चुनें। आप अभी भी जॉइन और कहां में गैर-चयनित कॉलम का उपयोग कर सकते हैं, और आपको अतिरिक्त कॉलम को ऑर्डर द्वारा ऑर्डर करने के लिए जोड़ा गया बोनस मिलता है।

2) यदि आपके पास केवल ग्रिड और कोडबेइंड का नियंत्रण होता है जिसका उपयोग इसे उत्पन्न करने के लिए किया जाता है, तो आप डेटाग्रिड पैरामीटर, ऑटोजेनरेट कॉलम = झूठी, और फिर अपने डेटाग्रिड के भीतर घोंसला सेट कर सकते हैं, जो बाउंडफिल्ड्स आपको दिखाने की ज़रूरत है। यह आपको प्रारूपित करने, कॉलम नाम बनाने आदि की शक्ति भी देता है।

यदि आप इन दोनों चीजों को कर सकते हैं, तो आपकी ग्रिड भी तेज़ी से लोड होनी चाहिए।

0
SqlCommand comm = new SqlCommand("Select required fields from YourTable, conn); 

conn.Open(); 
SqlDataReader rdr = comm.ExecuteReader(); 

GridView1.DataSource = rdr; 
GridView1.DataBind(); 

rdr.Close(); 

यह केवल आवश्यक फ़ील्ड प्रिंट करेगा।

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