Я работаю над проектом, который использует тему jQuery DataTables с полномочиями (Smart Admin). Я нахожу инструмент отличным клиентским решением специально для фильтрации результатов, не возвращаясь на сервер.jQuery DataTable - Hide Column Issue
Поля таблицы, которые мы показываем, являются лишь частью того, что есть в базе данных из-за того, что недостаточно места. Проблема в том, что функция экспорта включает только эти ограниченные столбцы. Я красный, если у нас есть скрытый столбец, который тоже будет экспортироваться (например: csv, xls, pdf) и т. Д.
Я попытался поднять поле, и это не сработало для меня. Я обязан, если бы вы могли указать на то, что я делаю неправильно.
Я сослалась на следующей статье: Data Table Example - Hidden Columns
Там не было никаких ошибок консоли, а остальные функциональные (фильтрация, экспорт хорошо работает).
Как бы то ни было, что мы можем иметь ошибку, не обновляемся до последней. Я думаю, что у нас есть v1.10.
# @fn setup: -> {{{
# @brief Sets up DataTable plugin with the help of the @$_tableId provided.
setupDataTables: ->
self = @
@setupCheckboxes() if @$_bulkControls.length > 0
@$_dataTables = $(@$_tables).dataTable
"columnDefs": [
{
"targets": [1, 2, 3, 4],
"visible": false
}
],
"sDom": "<'dt-toolbar'<'col-xs-12 col-sm-6'f><'col-sm-6 col-xs-6 hidden-xs'T>r>t<'dt-toolbar-footer'<'col-sm-6 col-xs-12 hidden-xs'i><'col-sm-6 col-xs-12'p>>"
"oTableTools": {
"aButtons": [
"copy",
{
"sExtends": "csv",
"sTitle": @generateDocumentName()
},
{
"sExtends": "xls",
"sTitle": @generateDocumentName()
},
{
"sExtends": "pdf",
"sTitle": @generateDocumentName(),
"sPdfMessage": "SmartAdmin PDF Export",
"sPdfSize": "letter"
},
{
"sExtends": "print",
"sMessage": "Generated by SmartAdmin <i>(press Esc to close)</i>"
}
],
"sSwfPath": "<%= asset_path('copy_csv_xls_pdf.swf') %>"
},
"autoWidth" : true,
"preDrawCallback" : ->
# Initialize the responsive datatables helper once.
if !self.$_responsiveHelperDatatableTabletools
self.$_responsiveHelperDatatableTabletools = new ResponsiveDatatablesHelper($('#datatable_tabletools'), self.$_breakpointDefinition)
,
"rowCallback" : (nRow) ->
self.$_responsiveHelperDatatableTabletools.createExpandIcon(nRow)
,
"drawCallback" : (oSettings) =>
@$_responsiveHelperDatatableTabletools.respond()
# Setup bulk control containers if requiredkCo
@setupBulkControls() if @$_bulkControls.length > 0
$("#datatable_tabletools thead th input[type=text]").on 'keyup change', ->
self.$_dataTables
.column($(this).parent().index()+':visible')
.search(this.value)
.draw()
# end of setup: -> }}}
Заранее благодарим за пожелание и желаем вам прекрасного выходного дня.
Вы можете добавить параметр [mColumns] (http://datatables.net/extensions/tabletools/button_options#mColumns) с 'all' значение для каждой из кнопок (например,' { «sExtends ":" xls "," mColumns ":" all ", ...}') и посмотреть, не имеет значения? Убедитесь, что вы используете последний плагин TableTools. Также проблема может быть в библиотеке [datatables-responsive] (https://github.com/Comanche/datatables-responsive), которую вы используете, она удаляет элементы '
Дайте html-код с помощью java-скрипта –
ответ
Так что вы хотите, чтобы дополнительные столбцы не отображались в пользовательском интерфейсе (из-за ограничений по недвижимости)
Однако вы хотите, чтобы эти дополнительные столбцы присутствовали в экспортированном csv.
Что такое datatable, так это то, что скрытые столбцы присутствуют в таблице HTML, но отмечены дисплеем: none. Это связано с тем, что идея скрытых столбцов заключается в том, что они не отображаются нигде, но они доступны, чтобы их можно было искать.
Если вы хотите этого достичь, вам нужно написать пользовательский jQuery, который выберет все данные в столбцах, а затем запустит его в csv.
При этом, я думаю, было бы целесообразно, если вы создадите новый тип ответа для вашего метода контроллера для обработки csv и разделите столбцы экспорта из столбцов отображения. Другими словами
источник
2015-05-16 04:13:46 Rishit
Смежные вопросы