سؤال

لديّ جدول يتم تحديثه مع Ajax وبعد تحديثه إذا تم فرزه ، لكنني بحاجة إلى فرز عمود ثابت ولكن نفس العمود الذي تم النقر عليه قبل التحديث.

function tableUpdated() {
$(".tablesorter").trigger("update");
//alert($(".tablesorter").sorting);
var sorting = [[7, 0]];
$("table").trigger("sorton", [sorting]);
}

في الكود أعلاه ، أحتاج إلى وضع فهرس العمود المحدد بدلاً من 7

هل كانت مفيدة؟

المحلول

jquery .data() سوف تساعدك هنا. عندما ينقر المستخدم على فرز جدول ، قم بتخزين الأعمدة على الجدول نفسه. ضمن وظيفة الفرز ، أضف هذا:

$("#table").data('sorting', selectedColumn);

الآن العنصر مع id="table" لديه خاصية sorting مع قيمة selectedColumn. في TableUpdated ، يمكنك استخدام هذه البيانات:

function tableUpdated() {
    $(".tablesorter").trigger("update");
    var sorting = [[$("#table").data('sorting'), 0]];
    $("#table").trigger("sorton", [sorting]);
}

البيانات المضافة باستخدام .data() يمكن أن تكون أكثر تعقيدًا ، مما يتيح لك إضافة كائنات من البيانات. نرى هذه الصفحة لمزيد من التفاصيل.

نصائح أخرى

باستخدام الكود الخاص بك ، يمكنك أن تفعل شيئًا كهذا (افترض أن معرف الجدول الخاص بك هو #جدول قائمة) للحفاظ على فرز الجدول الحالي:

function tableUpdated() {
    $("#list-table").trigger("update");
    var sorting = $("#list-table").get(0).config.sortList;
    $("#list-table").trigger("sorton", [sorting]);
}

يمكنك استلامه في حدث "sortend" على طاولتك:

var lastSortList;

$table.on('sortEnd', function(e) {
    lastSortList = e.target.config.sortList;
});

بعد القتال مع هذا ليوم أو نحو ذلك وجدت Plugin Datatables التي لديها الدولة إنقاذ خارج الصندوق. آمل أن يساعد هذا شخص آخر.

هنا يمكنك طلب مع نفس العمود وإضافة واحد جديد إلى SARTER

var sorting = $("table").get(0).config.sortList;
sorting.push([2,0]); // add an element to the array
$("table").trigger("sorton", [sorting]);

قد يكون أقل من ذلك بقليل لتوفير النوع الأخير فقط عند بدء Ajax مثل هذا:

lastSortList=$("table")[0].config.sortList;

ثم أعدها بعد التحديث مثل هذا:

$("table").trigger("sorton", [lastSortList]);

تذكر أن تعلن الخط الأول في النطاق الصحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top