在jQuery Datatables中,我们如何定义固定值列?

时间:2015-06-08 09:10:45

标签: javascript jquery jquery-datatables

使用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数据添加列来实现此目的。例如,我想在客户端添加MyFixedColMyGrid

ActionID | ActionTitle | MyFixedCol
=========+=============+===========
  1      |  Foo        | FIXEDVAL
---------+-------------+-----------
  2      |  Bar        | FIXEDVAL
---------+-------------+-----------
  3      |  Blah Blah  | FIXEDVAL
---------|-------------+-----------

我该怎么做?

1 个答案:

答案 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'));
  }
});