2011-06-16 8 views
10

मैं एक कॉलम (यह एक आईडी कॉलम जो प्रत्येक पंक्ति के लिए अद्वितीय है) को छिपाना चाहता हूं, लेकिन मैं इसे "कॉलम" सरणी से नहीं हटा सकता क्योंकि मुझे पंक्ति में उस डेटा की आवश्यकता होती है जब पंक्ति पर क्रियाएं होती हैं (चयन, छंटनी, ect)।"कॉलम" सरणी से इसे हटाने के बिना SlickGrid कॉलम को छिपाना संभव है?

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

धन्यवाद।

उत्तर

11

जवाब नहीं है, लेकिन यह है कि इस सवाल का जवाब आप के लिए :)

क्या कॉलम अपने डेटा हड़पने के लिए देख रहे हैं के अलावा, उन्हें और आपके डेटा के आइटम देखने के बीच कोई हार्ड लिंक है देख रहे हैं नहीं है पसंद। आपके डेटा आइटम पर आईडी रखने के लिए आपके पास एक कॉलम दिखाई नहीं दे रहा है।

+0

क्षमा करें, मैं पूरी तरह से समझ में नहीं आता कि आप क्या कह रहे हैं। मैं पंक्ति के डेटा से आईडी कैसे प्राप्त कर सकता हूं, यदि वह कॉलम "छुपा" है (पंक्ति में ए.के.ए. नहीं)। – Kevin

+5

आप ग्रिड को डेटा सरणी में बांधते हैं: var data = [{id: 0, शीर्षक: 'item1'}, {id: 1, शीर्षक: 'item3'}, ...]; यदि आप आईडी के लिए कॉलम प्रदर्शित नहीं करना चुनते हैं, तो डेटा डेटा आइटम पर अभी भी मौजूद है। – Tin

+0

आप आदमी हैं, नोबी आउट करने में मदद के लिए धन्यवाद! – Kevin

1

यह संभव नहीं है, लेकिन एक वैकल्पिक हल के रूप में आप 1 करने के लिए चौड़ाई/maxWidth सेट कर सकते हैं, एक रिक्त स्ट्रिंग पर नाम तय करने और अब तक सभी स्तंभों के दाईं ओर स्तंभ जगह। जैसा तो (उदाहरण, coffeescript में है अगर आप वाक्य रचना उपयोग http://js2coffee.org/ के बारे में अनिश्चित लग रहा है):

columns = [ 

      ... some columns ... 

      { 
       id:"hidden" 
       name:"" 
       field:"id" 
       sortable:"true" 
       width: 1 
       maxWidth: 1 
       minWidth: 1 
       unselectable: true 
       formatter: (row,cell,val,columnDef,dataContext) -> 
        "<div style='display: none;'>#{val}</div>" 
      } 
     ] 
0

इस तरह की समस्या के लिए, मैं दो सरणियों का उपयोग किया है। कॉलम पिकर के लिए एक और दूसरा दिखाने के लिए। यहां बताया गया है कि,

var org_columns = [],hid_columns = []; 
org_columns.push(
cb_selector.getColumnDefinition(), 
{id: "id", name: "ID", field: "id", sortable: true, width: 56}, 
{id: "name", name: "Name", field: "name", editor: Slick.Editors.Text, sortable: true, width: 234}, 
{id: "email", name: "Email", field: "email", editor: Slick.Editors.Text, sortable: true, width: 234} 
); 

hid_columns.push(
cb_selector.getColumnDefinition(), 
{id: "name", name: "Name", field: "name", editor: Slick.Editors.Text, sortable: true, width: 234}, 
{id: "email", name: "Email", field: "email", editor: Slick.Editors.Text, sortable: true, width: 234} 
); 
var data_view = new Slick.Data.DataView(); 
grid = new Slick.Grid("#grid", data_view, hid_columns, grid_options); 
var columnPicker= new Slick.Controls.ColumnPicker(org_columns, grid,grid_options); 
6

यदि कोई अभी भी इसकी तलाश कर रहा है, तो मुझे एक रास्ता मिल गया है ... यह बड़े पैमाने पर सुरुचिपूर्ण नहीं है लेकिन यह काम करता है। जैसा कि साइमन ने सुझाव दिया है, ग्रिड में अंतिम आईडी आईडी कॉलम जोड़ें। दोनों cssClass और headerCssClass सेट होने के लिए "प्रदर्शन: कोई भी महत्वपूर्ण" और चौड़ाई सेट, 0 को minWidth और maxWidth कॉलम विकल्प इस प्रकार है:

var columns = [ 
    { id: "MyColumnId", name: "My Column", field: "MyColumnData", width: 100}, 
    { id: "Id", name: "Id", field: "Id", width: 0, minWidth: 0, maxWidth: 0, cssClass: "reallyHidden", headerCssClass: "reallyHidden" } 
]; 

और सीएसएस है:

.reallyHidden {display : कोई नहीं! महत्वपूर्ण;}

आशा है कि मदद करता है।

coloumns.push में
+0

यह बिल्कुल सही है। मैंने देखा कि मुझे सीएसएस की आवश्यकता नहीं है, लेकिन मैं grid.render() के बाद gird.autosizeColumns() का भी उपयोग कर रहा हूं। शायद उसका इस से कोई सम्बंध हो? – jarederaj

+1

कॉलम का आकार बदलना हेडर और सेल वैल्यू मिस को थोड़ा सा गठबंधन करेगा। – bunjeeb

+0

आकार बदलने की समस्या को ठीक करने के लिए, slick.grid.js में कॉलमविड्थ लागू करने के लिए जाएं और निम्नलिखित 'if (कॉलम [i] .minWidth == 0 && कॉलम [i] .maxWidth == 0) {कॉलम [i] में जोड़ें। चौड़ाई = 0; } '। – phyatt

0

({आईडी: आईडी, नाम: नाम, छिपे हुए: सच}) // छिपा उस स्तंभ निकाल दिया जाता है सुनिश्चित करता है ग्रिड

0

बाध्यकारी जबकि मुझे पता है यह एक पुराने सवाल लेकिन सही है ऐसा करने का तरीका डेटा प्रदाता का उपयोग करके और getItemMetaData का उपयोग करके जानकारी प्रदान करने के लिए है जिसे आप आवश्यक रूप से प्रदर्शित नहीं करना चाहते हैं।

जब आप अपनी पंक्ति का चयन करते हैं तो आप अतिरिक्त जानकारी प्राप्त करने के लिए grid.getItemMetaData (cell.row) को कॉल कर सकते हैं। getItemMetaData से एक jsonObject को पंक्ति और सेल स्तर मेटाडेटा दोनों का वर्णन करने की उम्मीद है।

यहां दिए गए दस्तावेज़ हैं।

https://github.com/mleibman/SlickGrid/wiki/Providing-data-to-the-grid

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