我尝试使用SQLAlchemy DataTables来构建一个具有服务器端处理功能的表,该表具有具有多选复选框功能的列。在
这是我的flask python代码:
@app.route('/myiocs', methods=['GET'])
@login_required
def myiocs():
title = "My IOCs"
return render_template('myiocs.html', **locals())
@app.route('/myiocsdata', methods=['GET'])
@login_required
def myiocsdata():
"""Return server side data."""
# defining columns
columns = [
ColumnDT(sparkDB.ioc),
ColumnDT(sparkDB.ioc_type),
ColumnDT(sparkDB.active_mon),
ColumnDT(sparkDB.lifecycle_mon),
ColumnDT(sparkDB.added_by),
ColumnDT(sparkDB.tags),
]
query = sparkDB.query.filter_by(organization=current_user.organization).order_by(sparkDB.added_on)
params = request.args.to_dict()
rowTable = DataTables(params, query, columns)
return jsonify(convertToUTF8(rowTable.output_result()))
下面是我的html表结构:
^{pr2}$下面是我的javascript,可以帮助呈现datatable:
$(document).ready(function() {
var table = $('#sparkdb').DataTable({
"processing": true,
"serverSide": true,
"ajax": "{{ url_for('myiocsdata') }}",
'columnDefs': [
{
'targets': 0,
'checkboxes': {
'selectRow': true
}
}
],
'select': {
'style': 'multi'
},
'order': [[1, 'asc']]
});
$('#myiocs-frm').on('submit', function(e){
var form = this;
var rows_selected = table.column(0).checkboxes.selected();
// Iterate over all selected checkboxes
$.each(rows_selected, function(index, rowId){
// Create a hidden element
$(form).append(
$('<input>')
.attr('type', 'hidden')
.attr('name', 'id[]')
.val(rowId)
);
});
});
});
当我尝试运行代码时,我从datatables js库返回以下错误作为警报:
DataTables warning: table id=sparkdb - Requested unknown parameter '6' for row 0, column 6. For more information about this error, please see http://datatables.net/tn/4
消除错误后,表将显示,但是没有复选框,列未对齐。如果有人帮我指出正确的方向,我将不胜感激!在
返回7列,但只有6列。错误:
基本上是说第7列没有数据。您需要为复选框列返回一个空白。像这样:
^{pr2}$错误正在停止Datatables init进程,导致复选框不显示。看起来你在使用Gyrocode复选框插件。我假设您正在加载插件的include文件: https://www.gyrocode.com/projects/jquery-datatables-checkboxes/
相关问题 更多 >
编程相关推荐