2012-06-25 5 views
5

मैं एक निश्चित शीर्षक, सॉर्टिंग और अन्य शांत सुविधाओं के साथ एक स्नैज़ी टेबल बनाने के लिए यहां http://www.tablefixedheader.com/ से एक jQuery प्लगइन का उपयोग कर रहा हूं। अब, मैंने jqGrid को भी देखा है, जो हास्यास्पद रूप से शानदार दिखता है, लेकिन हम अपने डेटा स्रोत के साथ कुछ मजेदार चीजें कर रहे हैं और मुझे नहीं लगता कि यह jqGrid के साथ अच्छी तरह से खेलने के लिए तैयार है।मैं फिक्स्डटेबल हैडर jQuery प्लगइन को एक निश्चित पहले कॉलम के साथ कैसे बदल सकता हूं?

वैसे भी, मेरे मालिक तालिका के पहले कॉलम को तय करने के लिए चाहते हैं, इसलिए वे एक्स-अक्ष पर स्क्रॉल कर सकते हैं, लेकिन फिर भी पहले कॉलम को देख सकते हैं। इस कार्यक्षमता को प्रदान करने के लिए मैं इस प्लगइन को कैसे संशोधित कर सकता हूं?

किसी भी मदद की बहुत सराहना कर रहा है

धन्यवाद

संपादित करें:

मैं जोड़ने की कोशिश की:

th:first-child 
{ 
    position  : relative; 
} 
td:first-child 
{ 
    position  : relative; 
} 

साथ ही "निर्धारित" है, लेकिन यह अधिक से अधिक जटिल लगती है यह सरल समाधान ...

ऐसा करने से इसका असर पड़ता है , यह सिर्फ खुश नहीं है। इस बदलाव को बाएं तरफ स्थिर रहने का कारण बनता है, लेकिन मैं वास्तव में नीचे स्क्रॉल नहीं कर सकता, और वें वास्तव में काम नहीं कर रहा है।

संपादित करें 2:

मैं समाधान नीचे दिए गए लागू करने शुरू कर दिया है, हालांकि मैं इस प्लगइन के साथ टिंकर करने की अपनी क्षमताओं में पूरी तरह से आश्वस्त नहीं हूं। वैसे भी, यहाँ फेरबदल की वर्तमान स्थिति है:

मैं अद्यतन करने जारी रखेंगे के रूप में मैं जाना ...

मैं एक त्रुटि है कि कहते हैं this.offset.top अशक्त या नहीं एक वस्तु ... blah है मिलता है,

  var currentTop = 0; 
     var currentLeft = 0; 
     var currentWidth = 0; 
     var currentHeight = 0; 
     var currentContent = ""; 
     var currentDiv = ""; 
     var currentID = ""; 
     $('td:first-child').each(function (index) { 
      currentTop = $(this).offset.top; 
      currentLeft = $(this).offset.left; 
      currentWidth = $(this).width; 
      currentHeight = $(this).height; 
      currentContent = $(this).html(); 
      currentID = "fixed_column_cell" + index; 
      currentDiv = "<div class=\"fixed_column_cells\" id=\"" + currentID + "\">" + currentContent + "</div>"; 
      $('body').append(currentDiv); 
      $('#' + currentID).offset({ top: currentTop, left: currentLeft }); 
      $('#' + currentID).width(currentWidth); 
      $('#' + currentID).width(currentHeight); 
     }); 
     $('fixed_column_cells').css('position', 'fixed'); 

वर्तमान में

+0

प्लगइन को संशोधित करना बहुत मुश्किल होगा जो आप चाहते हैं। –

+0

जब आप बहुत मुश्किल कहते हैं, तो आपको लगता है कि यह कितना समय लगता है कि यह एक अनुभवी डेवलपर लेगा? –

+0

मुझे इस सुविधा को लागू करने के लिए प्लगइन क्या कर रहा है, पूरी तरह से समझने का विश्वास करता है ताकि यह सबकुछ (पेजिंग, क्रमबद्ध कॉलम, आकार बदलने योग्य कॉलम इत्यादि) के साथ संगत हो, और यह काम सभी प्रमुख ब्राउज़रों में कम से कम कई दिन। –

उत्तर

2

दिलचस्प समस्या होगी। मुझे नहीं लगता कि आपको पता चलेगा कि टेबल सेल (टीडी) तत्व आपके लिए इस तरह से व्यवहार करना चाहता है। ऐसा करने की बात सभी टीडी पर लूप हो सकती है: प्रथम-बच्चे और अपनी सामग्री को उसी आकार के divs में कॉपी करें जो टीडी ओवरलैप करते हैं। उन divs आपको उन्हें सही ढंग से स्थिति देने देंगे।

मुझे लगता है कि आप अंतर्निहित तालिका-सेल व्यवहार के साथ कुछ की सीमा में भाग रहे हैं।

Pseduocode:

  • पहले कॉलम में प्रत्येक तालिका सेल के लिए
  • ऊपरी बाएं स्थान प्राप्त
  • प्राप्त चौड़ाई और ऊंचाई
  • एक ही स्थान पर एक ही आकार के नए div बनाने
  • प्रतिलिपि नई div
  • सेट div को निश्चित pos
पर सामग्री सेट करें
+0

आपके समाधान का प्रयास किया, लेकिन अब तक विफल रहा है (वर्तमान स्थिति के लिए मेरा संपादन देखें)। हालांकि विचार बहुत अच्छा लगता है! –

+0

@ सिल्वर। ऑफसेट के उपयोग में कोई समस्या है। मैंने उपरोक्त आपके लिए एक टिप्पणी जोड़ा। – SimplGy

0

अटक मुझे पता है तुम ने कहा कि आप पहले से ही निश्चित सिर के लिए jQuery पुस्तकालय मिल गया है:

इस कोड document.ready बात में चला जाता है एर। हालांकि निश्चित कॉलम के साथ-साथ हेडर के लिए वहां कुछ पुस्तकालय भी हैं। एक जिसका मैंने उपयोग किया है Fixed Table है जो आपको बाएं कॉलम के साथ-साथ हेडर को तय करने की अनुमति देता है। उम्मीद है कि इससे आपको

+0

का प्रयास करें, सिवाय इसके कि मैं उन सुविधाओं को पसंद करता हूं जो इस प्लगइन को पहले से ही अनुमति देता है, जैसे सॉर्टिंग। किसी विशेष पंक्ति के मूल्य और इस तरह के आधार पर कस्टम पंक्ति हाइलाइटिंग जोड़ने के लिए मैंने इसके साथ पहले से ही चारों ओर झुका दिया है। –

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