使用Jquery.datatables
我构建了一个数据表,该表以Ajax
格式Json
动态加载来自服务器的数据。这是我的代码:
$('#MyTable').dataTable({
'sAjaxSource': '/Accounting/Action/GetData',
'bStateSave': false,
'bProcessing': true,
'bServerSide': true,
'data': {
},
'lengthChange': true,
'aoColumns': [
{
'mData': 'ActionID',
'title': 'کد',
'sClass': ''
},
{
'mData': 'ActionTitle',
'title': 'عنوان',
'sClass': ''
}
],
'sPaginationType': 'bootstrap'
});
它生成:
ActionID | ActionTitle
=========+=============
1 | Foo
---------+-------------
2 | Bar
---------+-------------
3 | Blah Blah
---------|------------
好的,但是我想为所有行添加一个具有固定值的列,我不会通过向服务器发送的Json数据添加列来实现此目的。例如,我想在客户端添加MyFixedCol
到MyGrid
:
ActionID | ActionTitle | MyFixedCol
=========+=============+===========
1 | Foo | FIXEDVAL
---------+-------------+-----------
2 | Bar | FIXEDVAL
---------+-------------+-----------
3 | Blah Blah | FIXEDVAL
---------|-------------+-----------
我该怎么做?
答案 0 :(得分:0)
我找到了一个技巧,它对我有用。所以我在这里分享,也许可以帮助别人:)
datatables
有一个createdRow
回调函数会在创建行时触发它。然后我将<td>
添加到相关的行中,它会针对所有行运行:
'createdRow': function ( row, data, index ) {
$(row).append($('<td>').html('FIXEDVAL'));
}
所以问题中的代码已经完成了:
$('#MyTable').dataTable({
'sAjaxSource': '/Accounting/Action/GetData',
'bStateSave': false,
'bProcessing': true,
'bServerSide': true,
'data': {
},
'lengthChange': true,
'aoColumns': [
{
'mData': 'ActionID',
'title': 'کد',
'sClass': ''
},
{
'mData': 'ActionTitle',
'title': 'عنوان',
'sClass': ''
}
],
'sPaginationType': 'bootstrap',
'createdRow': function ( row, data, index ) {
$(row).append($('<td>').html('FIXEDVAL'));
}
});