มีวิธีปิดการใช้งานการเรียงลำดับเริ่มต้นสำหรับ jQuery DataTables หรือไม่?


231

ฉันใช้ปลั๊กอินjquery DataTables จากเอกสารของพวกเขา:

หากเปิดใช้งานการเรียงลำดับแล้ว DataTables จะทำการเรียงผ่านครั้งแรกในการเริ่มต้น คุณสามารถกำหนดคอลัมน์ที่เรียงลำดับที่จะดำเนินการและทิศทางการเรียงลำดับด้วยตัวแปรนี้ อาร์เรย์ aaSorting ควรมีอาร์เรย์สำหรับแต่ละคอลัมน์ที่จะเรียงลำดับเริ่มต้นที่มีดัชนีของคอลัมน์และสตริงทิศทาง ('asc' หรือ 'desc')

เป็นไปได้หรือไม่ที่จะเปิดใช้งานการเรียงลำดับ แต่ปิดใช้งานการเรียงลำดับแรกในการเริ่มต้นได้หรือไม่ ขณะนี้ฉันกำลังทำฝั่งเซิร์ฟเวอร์การจัดเรียงเริ่มต้นและต้องการฟังก์ชันการเรียงลำดับ แต่ไม่ต้องการฟังก์ชันการเรียงลำดับเริ่มต้นนี้

คำตอบ:


566

ฉันพบชุดคำตอบ "aaSorting" เป็นอาร์เรย์ว่าง:

$(document).ready( function() {
    $('#example').dataTable({
        /* Disable initial sort */
        "aaSorting": []
    });
})

สำหรับ Datatables รุ่นใหม่กว่า (> = 1.10) ให้ใช้ตัวเลือกคำสั่ง :

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})

5
คำตอบนี้เป็นความช่วยเหลือที่ดี แต่มันก็คุ้มค่าที่จะได้ทราบถึงความสับสนที่อาจเกิดขึ้น หาก col 0 ถูกเรียงลำดับไว้ล่วงหน้าและการเรียงลำดับเริ่มต้นนี้จะถูกปิดใช้งานดังนั้นเมื่อผู้ใช้คลิกที่ส่วนหัวของ col 0 มันจะเรียงลำดับตามลำดับ สำหรับผู้ใช้สิ่งนี้ดูเหมือนไม่มีอะไรเกิดขึ้นเนื่องจากพวกเขาคาดหวังว่าจะเรียงลำดับจากมากไปน้อย การคลิกครั้งที่สองจะเรียงลำดับจากมากไปหาน้อย จะได้รับรอบนี้คุณสามารถตั้งค่าasSorting: ['desc', 'asc']ในaoColumnDefsเพื่อให้การคลิกครั้งแรกคือการจัดเรียงเรียง
tomfumb

8
สำหรับรุ่นที่ใหม่กว่าคำสั่งซื้อ: []
Darren

@tomfumb ที่จริงแล้วมี GUI ที่แสดงว่าไม่ได้เรียง การคลิกครั้งแรกจะแสดงการเรียงลำดับที่ถูกเปิดใช้งานแม้ว่ารายการจะไม่เปลี่ยนแปลง นั่นก็เพียงพอแล้วสำหรับฉัน
เนลสัน

2
คุณสามารถตั้งค่าระดับโต๊ะได้เช่นกัน -><table data-order="[]">
Howdy_McGee

วิธีนี้ไม่ได้ผลสำหรับฉัน แต่<table data-order="[]">ทำงานได้สำหรับฉัน
Alper


25

ลองสิ่งนี้:

$(document).ready( function () {
  $('#example').dataTable({
    "order": []
  });
});

นี่จะช่วยแก้ปัญหาของคุณ


1

ในตัวเลือก DataTable ใส่สิ่งนี้:

$(document).ready( function() {
  $('#example').dataTable({
    "aaSorting": [[ 2, 'asc' ]], 
    //More options ...

   });
})

นี่คือวิธีแก้ปัญหา: "aaSorting": [[2, 'asc']],

2หมายถึงตารางจะถูกจัดเรียงตามคอลัมน์ที่สาม
ascเรียงตามลำดับ


12
คำถามคือวิธี "ปิดใช้งานการเรียงลำดับเริ่มต้น" ไม่ใช่วิธีระบุลำดับการจัดเรียงอื่น คำตอบนี้เหมาะกับคำถามอื่นมากกว่า
Gone Coding
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.