jquery - jQuery DataTables - 在修改值后对虚拟列进行排序
问题描述
我有一个带有虚拟列的数据表,该列在加载后正在填充。但是,修改后的列无法排序,因为它似乎是按照从数据库中提取的原始值排序的,这只是一个空字符串。我也尝试过修改单元格的数据顺序和数据排序值,但这并没有解决我的问题。如何向 dataTable 指示单元格的排序值是什么?
// initialize data table
$('#projects').dataTable( {
"dom": "<'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-6'i><'col-md-6'p>>",
"order": [[ 1, "desc" ]],
"columns": [
{ data: 'active', name: 'active' },
{ data: 'name', name: 'name' },
{ data: 'entry_count', name: 'entry_count' }
],
"processing": true,
"serverSide": true,
"ajax": "{{{ URL::to('admin/projects/data') }}}"
}).on( 'draw.dt', function () {
// update dummy column data
$.ajax({
type: 'POST',
url: '/admin/projects/getEntryCount',
success: function(data) {
$("table").find('.entry_count').each(function(){
$(this).html(data[$(this).attr("id")]);
$(this).parent().attr("data-order",data[$(this).attr("id")]);
});
}
});
});
控制器.php
// get table data
public function getData() {
$projects = DB::table('project')
->select(array(
'id',
'active',
'name'
));
// add dummy columns for sorting
$projects = $projects->addSelect(DB::raw("'' as entry_count"));
return Datatables::of($projects)
->add_column('entry_count', '<p class="entry_count" id="entry_count_{{ $id }}"></p>')
->remove_column('id')
->make(true);
}
解决方案
推荐阅读
- python-3.x - 激活python virtualenv后如何自动运行shell脚本?
- java - 带有 2 个指针的 JavaFX 滑块
- flutter - Flutter 中的任务 ':google_maps_flutter:compileDebugJavaWithJavac' 执行失败
- python - 在 python 列表中查找第二个重复项和句点
- r - 根据列名和行名将数据从一个矩阵添加到另一个矩阵
- java - 不忽略 NoSuchElementException
- python - Python:存储自变量的值
- hyperledger-fabric - 订购者组织的 Hyperledger Fabric 所有权
- vue.js - 如何获得 v-for 循环中的第二个值?
- sql - 如何在oracle sql中将换行符的长度计为2个字符