2011-01-10 17 views
8

पर पंक्तियों को जोड़ने के दौरान पंक्ति विशेषताओं को निर्दिष्ट करने के लिए कैसे मुझे आश्चर्य हुआ कि अगर कोई और इस समस्या से आया है। जब मैं मूल रूप से अपने विचार में अपनी तालिका का निर्माण करता हूं, तो मैं एक कस्टम विशेषता का उपयोग कर रहा हूं (इसे customerID पर कॉल करें) प्रत्येक तालिका पंक्ति में जानकारी रखने के लिए मुझे एजेक्स कॉल के लिए पास करने की आवश्यकता होगी। हालांकि, मैं तालिका में पंक्तियों को गतिशील रूप से जोड़ रहा हूं, और मैं यह नहीं समझ सकता कि पंक्ति के लिए एक विशेषता में रखने के लिए उसी जानकारी (customerID) को कैसे पास किया जाए। वर्तमान में, पंक्तियों को जोड़ने के दौरान मैं केवल एक चीज कर रहा हूं जो तारों के सरणी की सरणी बना रहा है जो मेरे कॉलम पर बिल्कुल मैप करते हैं। यह ठीक काम करता है, लेकिन अतिरिक्त जानकारी वापस भेजने के लिए कोई जगह नहीं है।jQuery डेटाटेबल्स प्लगइन: तालिका

मुझे लगता है कि मुझे एक विशेषता में इसे स्टोर करने की आवश्यकता नहीं है, अगर पंक्तियों को जोड़ने के दौरान उस जानकारी को वापस देखने के लिए कोई दूसरा तरीका है। क्या किसी को इसके बारे में कुछ पता है?

धन्यवाद।

+0

क्या आप इस विशेषता को छिपे हुए कॉलम में संग्रहीत नहीं कर सकते? – a1ex07

+0

जब आप प्लगइन के माध्यम से छिपाने के लिए कॉलम सेट करते हैं (सेटिंग्स में bVisible का उपयोग करके), प्लगइन शब्दशः * डीओएम से कॉलम हटा देता है, और इसे प्लगइन के भीतर एक चर में संग्रहीत करता है। तो अपने आप पर, मैं कॉलम से डेटा का चयन नहीं कर सकता क्योंकि यह अब वहां नहीं है। –

+0

लेकिन आपके पास अभी भी 'fnGetData' के माध्यम से इसका उपयोग है। क्या यह आपके लिए काम नहीं करता है? – a1ex07

उत्तर

1

मैं पंक्तियों के माध्यम से एक-एक करके लूप के लिए प्लगइन के अंतर्निहित कार्यों का उपयोग कर इस समस्या को हल करने में सक्षम था। सर्वर पर, मैंने एक निजी वर्ग बनाया जिसमें क्लाइंट पर वापस आने के बाद मुझे आवश्यक सभी जानकारी के लिए फ़ील्ड शामिल थे। इसमें तालिका कक्षों के लिए वास्तविक मान शामिल हैं, लेकिन गुणों में भी जानकारी दी जानी चाहिए। मैं इनमें से एक सूची (एक ऑब्जेक्ट = एक पंक्ति की जानकारी के लायक) बनाते हैं, उन्हें क्रमबद्ध करता हूं, और उन्हें कॉलिंग AJAX विधि पर वापस भेजता हूं। निम्नलिखित कोड मानता मैं वस्तुओं की धारावाहिक स्ट्रिंग वापस प्राप्त हो गया है, और मैं जे एस में हूँ:

function(rowsToAdd) { 

    var rowList = JSON.parse(rowsToAdd); // rows come back as object representations of table rows, with properties 

    $.each(rowList, function(index, row) { 
     var rowStringArray = [row.Prop1, row.Prop2, row.Prop3, row.Prop4]; 
     var rowPos = tableObject.fnAddData(rowStringArray); // add the row through the plugin, and receive the row's index in return 
     var tableRowElement = tableObject.fnGetNodes(rowPos[0]); // get reference to <tr> element just added 

     $(tableRowElement).attr('attributeINeeded', row.AttributeProp).attr('anotherAttributeINeeded', row.AttributeProp2); 
    }); 
} 
+0

मैं किसी ऐसे व्यक्ति को इस समाधान की सलाह नहीं दूंगा जिसकी तालिका में डेटा की एक महत्वपूर्ण मात्रा है। * निर्माण * के बाद * तालिका में प्रत्येक पंक्ति के माध्यम से लूप को प्रदर्शन प्रभाव के लायक नहीं है। – Kehlan

0

fnCreatedRow callback का प्रयोग करें टी.आर. नोड को संशोधित करने के बाद इसे बनाया जाता है।

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