मेरे पास कुछ 20 कॉलम के साथ एक .NET डेटाग्रिड है। मुझे जावास्क्रिप्ट का उपयोग करके बटन के क्लिक के आधार पर टॉगल करने के लिए कॉलम की दृश्यता की आवश्यकता है। कोई विचार?जावास्क्रिप्ट के साथ एक डाटाग्रिड कॉलम छुपाएं?
उत्तर
ऐसा करने के लिए COLGROUP उपयोग करना चाहते हैं, अन्यथा आप एक शैली के लिए हर पंक्ति है, जो बहुत अक्षम हो जाएगा पर हर सेल आवेदन करना होगा और संभावना रखती हूँ ब्राउज़र, खासकर अगर आपका ग्रिड बड़ा है। उपरोक्त सभी उत्तर जो तृतीय पक्ष लाइब्रेरी (jQuery) पर भरोसा करते हैं, वे धीमे/आलसी तरीके से कर रहे हैं। चूंकि सभी जावास्क्रिप्ट क्लाइंट-साइड पर चलता है, इसलिए जब आप दक्षता की बात करते हैं तो शायद आप थोड़ा और विचार करना चाहते हैं।
यहाँ फिर जाना ...
function hideColumns(tableId, colIndexArray) {
var tbl = document.getElementById(tableId);
if(!tbl) return;
var rows = tbl.getElementsByTagName("TBODY");
if(rows.length == 0)
rows = tbl.getElementsByTagName("TR");
else
rows = rows[0].getElementsByTagName("TR");
var cols = rows[rows.length - 1].getElementsByTagName("TD");
var colgroup = document.createElement("COLGROUP");
for(var i = 0, l = cols.length; i < l; i++) {
var col = document.createElement("COL");
for(var num in colIndexArray) {
if(colIndexArray[num] == i) {
if(document.all)
col.style.display = 'none'
else
col.style.visibility = 'collapse';
break;
}
}
colgroup.appendChild(col);
}
tbl.insertBefore(colgroup, tbl.childNodes[0]);
}
इस तरह यह प्रयोग करें ...
var columnsToHide = [0, 1, 2]; // hide the first 3 columns
var tableId = "tableIdHere"; // view the source of your page to get this
hideColumns(tableId, columnsToHide);
IE7 और FF3 में परीक्षण किया गया: Hide Table Columns Using Javascript
jQuery का उपयोग करें! यह विस्मयकारी है।
आपका लिंक इस तरह दिखेगा कर सकते हैं:
<a href="javascript:ToggleColumn();">Toggle My Column</a>
आपका जावास्क्रिप्ट समारोह इस तरह दिख सकता:
function ToggleColumn()
{
$(".myColumn").toggle();
}
वांछित स्तंभ में उत्पन्न प्रत्येक विशेषता वर्ग = "MyColumn" होनी चाहिए तो आपका जावास्क्रिप्ट इसे ढूंढ सकता है। ऐसा करने के लिए, आप अपने डेटा ग्रिड के वांछित स्तंभ के लिए एक <ItemStyle />
तत्व जोड़ सकते हैं, इस तरह:
<asp:TemplateColumn runat="server">
<ItemStyle CssClass="myColumn" />
</asp:TemplateColumn>
और अंत में, jQuery के लिए एक लिंक इस तरह, कहीं आपके हेडर फाइल में शामिल करना न भूलें:
<script src="/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
आप download jQuery here कर सकते हैं।
'कॉलम' वास्तव में एक HTML नहीं है तत्व जो आप इस तरह टॉगल कर सकते हैं। – SolutionYogi
@SolutionYogi: निश्चित रूप से यह है! JQuery चयनकर्ता MyColumn क्लास की तलाश में है। यह कोड बहुत अच्छा काम करता है! :) – JerSchneid
काफी नहीं। एएसपी.नेट क्या करेगा, उस कॉलम के लिए प्रत्येक टीडी पर .myColumn क्लास डाल दिया जाएगा। तो उन व्यक्तिगत टीडी प्रत्येक टॉगल हो जाएगा। पाप के रूप में बदसूरत, लेकिन यह काम करना चाहिए। – Randolpho
मेरी निजी राय JQuery का उपयोग करना होगा।
कॉलम ढूंढने के लिए चयनकर्ताओं का उपयोग करें और शैली में 'छुपा: सत्य' जोड़ें। यह एक शुद्ध जेएस समाधान है।
इस jQuery प्लगइन पर देखो,
http://p.sohei.org/jquery-plugins/columnmanager/
अपने पृष्ठ पर इस प्लगइन शामिल और लिंक के क्लिक करें घटना पर यह कहते हैं।
अन्य लोगों के सुझाव के रूप में jquery का उपयोग करें ... इस तरह कुछ चयनकर्ता इसे करना चाहिए। यह अनिवार्य रूप से स्तंभ को छिपाने के हैं 3.
$('table.tableCSS tr').find('td:eq(2)').hide(); // eq(index)
- 1. डब्ल्यूपीएफ एमवीवीएम डाटाग्रिड डायनामिक कॉलम
- 2. छुपाएं ExtJS ग्रिड कॉलम हेडर
- 3. डब्ल्यूपीएफ डाटाग्रिड - एक चेकबॉक्स
- 4. डब्ल्यूपीएफ डाटाग्रिड कॉलम चौड़ाई ऑटो और स्क्रॉलबार
- 5. डब्ल्यूपीएफ में डाटाग्रिड - 1 कॉलम डिफ़ॉल्ट क्रमबद्ध
- 6. बाएं कॉलम को छुपाएं DataGridView
- 7. प्राइमफेस टेबल कॉलम हेडर छुपाएं
- 8. डब्ल्यूपीएफ डाटाग्रिड
- 9. डब्ल्यूपीएफ डाटाग्रिड
- 10. जावास्क्रिप्ट - स्टार्टअप (लोड) पर एक डिव छुपाएं
- 11. एक डीआईवी छुपाएं [रेल]
- 12. ओवरफ़्लो के साथ स्क्रॉलबार छुपाएं: स्क्रॉल सक्षम
- 13. डब्लूपीएफ के डाटाग्रिड
- 14. कुछ उपयोगकर्ताओं से ओरेकल छुपाएं कॉलम
- 15. ListView नियंत्रण में आईडी कॉलम छुपाएं
- 16. डब्ल्यूपीएफ डाटाग्रिड पंक्ति संख्या
- 17. डब्ल्यूपीएफ डाटाग्रिड टेम्पलेट कॉलम। क्या मैं कुछ भूल रहा हूँ?
- 18. डब्ल्यूपीएफ टूलकिट डाटाग्रिड - कस्टम टैब्बिंग
- 19. सिल्वरलाइट डाटाग्रिड पंक्ति
- 20. डब्ल्यूपीएफ डाटाग्रिड:
- 21. मैं डब्ल्यूपीएफ टूलकिट डाटाग्रिड
- 22. देरी के साथ ट्विटर बूटस्ट्रैप मोडल ('छुपाएं')
- 23. रेलवे माइग्रेशन कॉलम के साथ एक कॉलम को हटा देगा
- 24. शो, माउसओवर के साथ डीआईवी छुपाएं, माउसआउट
- 25. जावास्क्रिप्ट में छुपाएं/दिखाएं - यूट्यूब आईफ्रेम वीडियो
- 26. यूट्यूब प्लेयर एपीआई नियंत्रण छुपाएं, जानकारी छुपाएं, संबंधित वीडियो छुपाएं?
- 27. SQLServer पहचान कॉलम के साथ कॉलम
- 28. एमवीवीएम डाटाग्रिड बाध्यकारी
- 29. डब्ल्यूपीएफ डाटाग्रिड- ऑटो रीफ्रेश
- 30. एसक्यूएल एक कॉलम के साथ एक ही पंक्ति के साथ कई पंक्तियां डालें और एक कॉलम अलग
वाह JQuery के उपयोग के बिना एक सही जवाब वाह। +1 – epascarello
डेटाग्रिड्स कोलग्रुप को उत्सर्जित नहीं करते हैं। – Randolpho
एलओएल! हाँ, और यही कारण है कि मैं उन्हें डीओएम में इंजेक्ट करने के लिए जावास्क्रिप्ट का उपयोग कर रहा हूं। मत समझो क्योंकि आप समझ में नहीं आते हैं! –