Мы используем плагин jQuery DataTables .Плагин выглядит довольно негибким.Мы уже работали над двумя основными проблемами и сейчас сталкиваемся с третьей:
В нашей таблице мы хотим отобразить специальную строку, которая не является сущностью того типа, как все остальные.Он служит визуальным разделителем между строками выше и строками ниже.У него другое количество ячеек, другой формат и другое содержимое.
Мы используем шаблоны jQuery для визуализации содержимого строки вместе с knockoutjs обработчик привязки путем когнитивного сдвига. Кажется, что нет никакого способа настроить различные типы строк или что-либо в таблицах данных, поэтому cogshift переопределяет fnRowCallback
для поддержки шаблонов jQuery.
То, как мы находимсяв настоящее время рассматривается решение этой проблемы путем добавления в модель представления «фиктивного» элемента со специальным свойством, например «IsDummy ()», чтобы определить, как его визуализировать.В шаблоне jQuery мы отрисовываем строку по-разному, основываясь на этом свойстве:
<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>
Однако при попытке сортировки это приведет к разрыву таблиц данных не позднее, поскольку он сохраняет все td-ы в массиве с 1 dim иполагается на арифметику для получения правильной ячейки на основе номера строки и столбца или в кратких выражениях: все строки должны иметь одинаковое количество столбцов.
Это тот момент, когда я остановился и понял, насколько неловко все эти хакибудут, и что должен быть лучший подход, или я мог бы полностью упустить возможность данных.- хотя я боюсь, что это не так ...
Кто-нибудь может дать мне несколько советов здесь?
Обновление: Тем временем я обнаружил еще больше проблем:
- Если в массиве нет «реальных» записей, я хочу, чтобы в datatable отображалось «данные не найдены», т.е. мне нужно динамически удалять фиктивный элемент, если все остальные элементы удаленыи добавьте его обратно, как только будет добавлена новая «реальная» запись.
- В сводке таблиц данных указано «Отображение 6 из 6 записей», если существует 5 «реальных» записей из-за фиктивной записи ...