الحصول على مسج tablesorter للعمل مع خفية/تجميع صفوف الجدول

StackOverflow https://stackoverflow.com/questions/218911

  •  03-07-2019
  •  | 
  •  

سؤال

لدي الكلاسيكية طاولة قابلة للزيادة و قابلة للطي السجلات التي إذا توسعت تظهر عدة subrecords (كما سجلات جديدة في نفس الجدول الأصل وليس الطفل div/الطفل الجدول).أنا أيضا باستخدام tablesorter والحب على الإطلاق.

المشكلة هي أن tablesorter ليست حفظ موسعة السجلات التالية إلى الوالدين السجلات.ومن أنواع معهم كما لو كانوا أعلى مستوى.لذلك في كل مرة يحصل بالجدول مصنفة حسب عمود الطفل الصفوف في نهاية المطاف في كل مكان و ليس ما أريد منهم.

لا أحد يعرف من جيد امتداد tablesorter أو محددة التكوين التي تمكن tablesorter للحفاظ على الطفل صفوف مجمعة معا مع الوالد الصف حتى بعد الفرز?أو لا بد أن تتخلى tablesorter في صالح بعض الدول الأخرى API أو البدء القبيح عملية كتابة بلدي القطعة ؟ يجب تجنب css النهج القائم على إخفاء الصفوف الفردية من الجدول تمثل انهيار الصفوف ؟

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

المحلول

إذا كنت تريد أن تبقي tablesorter ، هناك وزارة الدفاع التي استخدمت لهذا الغرض متوفرة هنا

بعد ذلك, يمكنك جعل الخاص بك الثانية (قابلة للتوسيع الطفل) صف فئة "توسيع الطفل" ، tablesorter تعرف للحفاظ على الصف يقترن الأم (الصف السابقة).

نصائح أخرى

والواقع، وأن وزارة الدفاع من tablesorter التي كتبهاAdamBellaire المذكورة أضيفت ل tablesorter v2.0.5 . لقد وثقت كيفية استخدام الخيار ccsChildRow على بلدي بلوق.

وأيضا، إذا كنت مهتما، ولدي شوكة من tablesorter على <أ href ل = "https://github.com/Mottie/tablesorter" يختلط = "noreferrer"> جيثب التي لديها الكثير من التحسينات والحاجيات مفيدة:)

والإصلاح القبيحة بدلا من استخدام ما سبق ينطوي على تحديد الدرجة parentId المغلق والطبقة المغلق childId عن الأم والطفل الصفوف، ثم استخدام القطعة لإعادة ضبط. فقط في حالة أي شخص آخر يعمل عبر هذه المشكلة. فمن الواضح أنه لا أفضل رمز في كل شيء، ولكنه يعمل بالنسبة لي!

$("tbody tr[class^='parent']", table).each(function() {
 $(this).after($("tbody tr[class^='child"+$(this).attr("class").substring(6)+"']", table));
});

وكنت قادرا على التغلب على هذا عن طريق تعيين يختلط الطفل سمات للأطفال وسمات يختلط الوالدين للوالدين. بعد ذلك حلقة من خلال الجدول في بداية وتخفي كل من الأطفال وreappend لهم بعد الانتهاء من الفرز. أنا أيضا استخدام وظيفة تبديل لعرض الأطفال. وإنني هنا الحل:

function lfDisplayProductInformation(id){

    if($(`[rel="child-${id}"]`).attr("hidden") === 'hidden'){
        $(`[rel="child-${id}"]`).removeAttr('hidden')
    }
    else if(!$(`[rel="child-${id}`).attr("hidden")){
        $(`[rel="child-${id}"]`).attr("hidden", true)
    }

}

$(".tablesort")
.tablesorter({
  theme: 'blue',
  showProcessing : true
})

// assign the sortStart event
.bind("sortStart",function(e, t) {
    $("tr[rel^='parent']").each(function() {
            var parentRow = $(this); 
            var tag = (parentRow.attr('rel')).split("-")[1];
            var childRow = $(`tr[rel="child-${tag}"]`)
            if(!childRow.attr("hidden")){
                childRow.attr("hidden", true)
            }
    });

})

.bind("sortEnd",function(e, t) {
    $("tr[rel^='parent']").each(function() {
            var parentRow = $(this); 
            var tag = (parentRow.attr('rel')).split("-")[1];
            var childRow = $(`tr[rel="child-${tag}"]`)
            childRow
            parentRow.after(childRow);
    });
})
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top