मैं खाली प्रविष्टियों को छोड़ते समय डेटा-टेबल में ईमेल कॉलम को सॉर्ट करने का प्रयास कर रहा हूं, नीचे कोड स्निपेट है। मैंने डेटाटेबल जेएस फाइलों के बाद यह कोड जोड़ा है।

    <script>

        jQuery.extend( jQuery.fn.dataTableExt.oSort, {
        "non-empty-string-asc": function (str1, str2) {
            if(str1 == "")
                return 1;
            if(str2 == "")
                return -1;
            return ((str1 < str2) ? -1 : ((str1 > str2) ? 1 : 0));
        },

        "non-empty-string-desc": function (str1, str2) {
            if(str1 == "")
                return 1;
            if(str2 == "")
                return -1;
            return ((str1 < str2) ? 1 : ((str1 > str2) ? -1 : 0));
        }
    } );


    var dataTable = $('#example').dataTable({
        columnDefs: [
           {type: 'non-empty-string', targets: ['email']} // define 'name' column as non-empty-string type
        ]
    });

</script>

नीचे मेरे कॉलम नाम हैं

$columns = array(
     array( 'db' => 'country',  'dt' => 0 ),
    array( 'db' => 'city',   'dt' => 1 ),
    array( 'db' => 'name',     'dt' => 2 ),

    array( 'db' => 'contact1', 'dt' => 3),
    array( 'db' => 'contac2',  'dt' => 4 ),
     array( 'db' => 'email',     'dt' => 5),
    array( 'db' => 'project', 'dt' => 6 ),
    array( 'db' => 'national',  'dt' => 7),
    array( 'db' => 'developer',   'dt' => 8 ),

);

उपरोक्त कोड आवश्यक समस्या को सॉर्ट नहीं कर रहा है, साथ ही इंडेक्स को पास करने की कोशिश की गई, लेकिन यह काम नहीं किया, कृपया सलाह दें।

-1
Sikander Nawaz 23 नवम्बर 2019, 14:31
आपका मतलब है कि कोई छँटाई बिल्कुल नहीं होती है, या यह आपके इच्छित क्रम में नहीं होता है? ब्राउज़र कंसोल के पास कहने के लिए कुछ है? "नीचे मेरे कॉलम नाम हैं" - वास्तव में उतना उपयोगी नहीं है, आपको हमें यह दिखाना होगा कि आप वास्तव में उस डेटा से बनाई क्या कर रहे हैं।
 – 
04FS
23 नवम्बर 2019, 15:46
एक बार डेटा सॉर्ट हो जाने के बाद मैं खाली पंक्तियों को अंत में अंत में जाना चाहता हूं, यह उन्हें शुरुआत में या बीच में सॉर्ट करते समय दिखा रहा है
 – 
Sikander Nawaz
25 नवम्बर 2019, 00:15

1 उत्तर

खाली स्ट्रिंग मामलों के लिए आपका तर्क गलत प्रतीत होता है।

मेरी समझ के अनुसार आप सभी को खाली करने के लिए asc और desc दोनों में समाप्त करना चाहते हैं।

लेकिन आपके तर्क में आप 1 और -1 पास कर रहे हैं जो अन्य स्ट्रिंग के समान व्यवहार करेगा।

आपका कोड इस तरह होना चाहिए

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
    "non-empty-string-asc": function (str1, str2) {
        if(str1 == "" || str2 == "")
            return -1; // pushes to last 
        return ((str1 < str2) ? -1 : ((str1 > str2) ? 1 : 0));
    },
    "non-empty-string-desc": function (str1, str2) {
        if(str1 == "" || str2 == "")
            return -1; // pushes to last 
        return ((str1 < str2) ? 1 : ((str1 > str2) ? -1 : 0));
    }
} );
0
MyTwoCents 25 नवम्बर 2019, 09:52