Мы используем jQuery DataTables plug-in. Плагин кажется довольно нежестким. Мы уже работали над 2-мя главными проблемами и теперь сталкиваемся с третьим:DataTables - отображение специальных строк с разными ячейками и форматирование
В нашей таблице мы хотим отобразить специальную строку, которая не является объектом типа всех остальных. Он служит визуальным разделителем между строками выше и строками ниже. У него разное количество ячеек, другой формат и другой контент.
Мы используем шаблоны JQuery для отображения содержимого строки в сочетании с knockoutjs binding handler by cognitive shift. Там, кажется, не каким-либо образом настроить различные типы строк или что-нибудь в DataTables, так cogshift переопределяет fnRowCallback
к поддержка шаблонов jQuery.
Способ, которым мы в настоящее время планируем решить эту проблему, заключается в добавлении «фиктивного» элемента в viewmodel, который имеет специальное свойство, например. «IsDummy()», чтобы определить, как его отобразить. В шаблоне JQuery мы оказываем ряд differntly, основанный на этом свойстве:
<script id="template" type="text/x-jquery-tmpl">
{{if IsDummy()}}
<td colspan="5" style="background-color:yellow; text-align: center">
Entries starting with ${StartLetter}
</td>
{{else}}
<td>${Id}</td><td>${Name}</td>...
{{/if}}
</script>
Однако это нарушит DataTables самого позднего при попытке разобраться, потому что он сохраняет все TD-s в 1-тусклом массиве и опирается на арифметику для извлечения правой ячейки на основе номера строки и столбца или в короткие сроки: все строки должны иметь одинаковое количество столбцов.
Это тот момент, когда я остановился и понял, насколько неудобны все эти хаки, и что должен быть лучший подход, или я могу вообще не пропускать функцию данных. - хотя я боюсь, что это не так ...
Может ли кто-нибудь дать мне руководство?
Update: В то же время я нашел еще больше вопросов:
- Если нет никаких «реальных» записей в массиве, я хочу DataTable для отображения «не найдено никаких данных», то есть я должны динамически удалять фиктивный элемент, если все остальные элементы удалены, и добавьте его обратно после добавления новой «реальной» записи.
- Резюме DataTables говорит: «Отображение 6 из 6 записей», если есть 5 «реальная» запись из-за фиктивную запись ...
Это замечательно! Звучит очень многообещающе, и поскольку это часть javascript, мы можем даже изменить ее настолько, насколько мы хотим удовлетворить наши требования. Попробуем a.s.a.p. – chiccodoro