需要从Datatable按钮操作

时间:2016-12-02 12:13:38

标签: javascript jquery twitter-bootstrap datatables

我确实使用数据表,其中我已经声明了一些按钮来触发按钮用户按下的操作:

var dpcroles = $('#example_roles').DataTable( {
    dom: 'Bfrtip',
    "columnDefs": [
        {
            "targets": [0],
            "visible": false
        }
    ],
    buttons: [
        {
            text: 'Add',
            id: 'btn_add',
            "data-action":'add',
            action: function ( e, dt, node, config ) {
                $('#modal_action').modal();
            }
        },
        {
            id: 'btn_edit',
            text: 'Edit',
            action: function ( e, dt, node, config ) {
                var id = $(e.relatedTarget).data('id');
                console.log(id);
                $('#model_action').modal(id);
            },
            enabled: true
        },

    ],

但是,如何传递处理模态开放的参数javascript?

$('#model_action').on('show.bs.modal', function(e) {
    // if button 'edit', do something 
        .
        . 
    // else if button 'add' do other thing 
        .
        .
        .
})

1 个答案:

答案 0 :(得分:1)

您可以在调用data-方法之前为模态设置modal()属性。例如:

$('#modal_action').data('mode', 'edit');
$('#modal_action').modal();

然后在事件处理程序中,您可以检索数据。例如:

$('#modal_action').on('show.bs.modal', function(e) {
    var $modal = $(this);

    var mode = $modal.data('mode');

    // if button 'edit', do something 
    if(mode === 'edit'){

    // else if button 'add' do other thing 
    } else {

    }
});

另一种解决方案是使用两种不同的模态,每种模式一种。

请注意,您的示例中可能拼错了模式的名称,它应该是modal_actionmodel_action