2015-11-23 3 views
8

का उपयोग करके संख्या और छवि शामिल है, मैं छवि और संख्या वाले दूसरे कॉलम को कैसे क्रमबद्ध कर सकता हूं।मैं उस कॉलम को कैसे क्रमबद्ध कर सकता हूं जिसमें डेटाटेबल

<table id='tb' class="table table-bordered table-striped table-hover"> 
    <tr> 
     <td>status</td> 
     <td><img src='edit.png'>1</td> 
    </tr> 
    <tr> 
     <td>status</td> 
     <td><img src='edit.png'>2</td> 
    </tr> 
    <tr> 
     <td>status</td> 
     <td><img src='edit.png'>3</td> 
    </tr> 
</table> 

मैं उस छवि यह 1,10,11,12..If के रूप में छँटाई मुझे लगता है कि छवि टैग यह छँटाई properly.So कृपया कुछ समाधान दे हटाने की वजह से इस तरह की कोशिश की,।

$("#tb").dataTable({ 
    "order": [ 
     [1, "asc"] 
    ] 
}); 
+1

** [यह तुम्हारे साथ मदद करनी चाहिए] (https://datatables.net/forums/discussion/4526/how-to-sort-a-column-with-images) ** –

+0

आप कर सकते हैं 'img' टैग हटाएं, और इस छवि को 'पहले से' सीएसएस नियमों का उपयोग करके जोड़ने का प्रयास करें। आम तौर पर, यह प्रत्येक सेल में 'img' की प्रतिलिपि बनाने से बेहतर होता है; और यह आपके कॉलम को व्यवस्थित करेगा। –

उत्तर

0

@Guruprasad राव टिप्पणी और प्लगइन डॉक्स (http://datatables.net/plug-ins/sorting#hidden_title_string) के आधार पर, आप अपने खुद के फिल्टर बनाने के लिए किया है। कुछ इस तरह:

फ़िल्टर कोड:

/* Create an array with the values of all the input boxes in a column */ 
$.fn.dataTable.ext.order['dom-inner-text'] = function (settings, col) 
{ 
    return this.api().column(col, {order:'index'}).nodes().map(function (td, i) { 
     return td.text(); 
    }); 
} 

फिर datatable init समारोह में:

$('#example').DataTable({ 
    "columns": [ 
     null, 
     { "orderDataType": "dom-inner-text" }, 
     .... 
    ] 
}); 
+0

यह शायद सबसे सामान्य समाधान है, लेकिन ऐसा लगता है कि स्कॉटिस्मोल्स द्वारा दो उत्तरों इस विशेष स्थिति को और अधिक आसानी से हल कर सकते हैं। –

1
छवि टैग की वजह से

, यह एक स्ट्रिंग के रूप में छँटाई है। हालांकि यह पहले पाठ के साथ छंटनी शुरू कर देगा, इसलिए जिस तरह से मैं इसे प्राप्त करता हूं वह संख्यात्मक मूल्य के साथ एक छिपी हुई अवधि को जोड़कर होता है। आपको बस एक ही लंबाई के सभी मूल्यों को याद रखना होगा क्योंकि उन्हें अभी भी तारों के रूप में क्रमबद्ध किया जाएगा। आप इसे 0 जोड़कर कर सकते हैं।

एक उदाहरण [संभालने मुझे पता है कि मेरा नंबर 100 से अधिक कभी नहीं होगा]:

<td><span style="display:none">024</span><img src='edit.png'>24</td> 
... 
<td><span style="display:none">001</span><img src='edit.png'>1</td> 
... 
<td><span style="display:none">033</span><img src='edit.png'>33</td> 
... 
<td><span style="display:none">051</span><img src='edit.png'>51</td> 

आरोही तरह, यहां तक ​​कि एक स्ट्रिंग के रूप में 1, 24, 33, 51

+0

यह एक बहुत चालाक समाधान है। –

1

परिणाम होगा HTML5 data attributes को शामिल करने के साथ डेटाटेबल के वर्तमान संस्करण में सॉर्टिंग अधिक लचीला है।

टीडी टैग में डेटा-सॉर्ट या डेटा-ऑर्डर विशेषताओं को संलग्न करने से आप अपनी तालिकाओं में सभी प्रकार की डोम ऑब्जेक्ट्स के लिए सॉर्ट ऑर्डर को कस्टमाइज़ कर सकते हैं।

<table id='tb' class="table table-bordered table-striped table-hover"> 
    <tr> 
     <td>status</td> 
     <td data-order='1'><img src='edit.png'>1</td> 
    </tr> 
    <tr> 
     <td>status</td> 
     <td data-order='2'><img src='edit.png'>2</td> 
    </tr> 
    <tr> 
     <td>status</td> 
     <td data-order='3'><img src='edit.png'>3</td> 
    </tr> 
</table> 
+0

मैंने लिखना शुरू किया कि यह एक गतिशील सेटिंग में काम नहीं कर सकता है (जहां डेटा डीबी से आ रहा है), लेकिन IIUYC, आपका मतलब है कि डेटा-ऑर्डर विशेषता में भी वही "मान" डालें, और डेटा टेबल का उपयोग किया जाएगा सेल सामग्री के बजाय डेटा-ऑर्डर विशेषता। सही? –

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

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