在列内的下拉菜单中选择选项时,如何更改Datatables行数据?

时间:2019-02-01 11:45:51

标签: javascript jquery datatables

我正在通过ajax请求(不是serverSide)填充数据表,并在呈现表之前基于属性添加了一个下拉列。列名称为ContactType。我可以毫无问题地更改ContactType列上的下拉选择选项。但是当我想使用myTableObject.rows()。data();以JSON形式获取数据时;命令,我看到输出数据没有更新。 ContactType列数据仍为相同值。我该怎么做?

我正在初始化表格;

var myTableObject=
$("#dataTable").DataTable({
    columns: [
        { data: "ContactType", title: "Contact Type" },            
        { data: "Email1", title: "E-Posta 1" },
        { data: "Email2", title: "E-Posta 2" },
        { data: "Telno1", title: "Telefon 1" },
        { data: "Telno2", title: "Telefon 2" },
        { data: "Fax", title: "Fax No" }
    ],
    lengthMenu: [5, 10, 25, 50, 100],
    pageLength: 10,
    order: [
        [1, "desc"]
    ],
    columnDefs:
    [
        {
            targets: 0,
            width: "150px",
            render: function(e, a, t, n) {
                return '<select id="selectOption" class="form-control m-input" style="width:140px;">\r\n    <option data-val="0">Yapılmayacak</option>\r\n   <option data-val="1">E-Mail</option>\r\n    <option data-val="2">SMS</option>\r\n    <option data-val="3">Fax</option>   \r\n</select>';
            }
        }
    ],

    ordering: false,        
    searching: true,
    scrollY: "50vh",
    scrollX: true,
    scrollCollapse: true,
});

然后像这样填充;

$('#myButton').click(function() {
        $('body').addClass('m-page--loading');
        $.ajax({
            url: "/home/GetData/",
            type: "post",
            data: {
                "tarih": $('#datepicker').val(),
                "dbName": $('#firmalistesi').find(":selected").data('dbname'),
                "firmaNo": $('#firmalistesi').find(":selected").data('firmano')
            }
        }).done(function(result) {
            myTableObject.clear().draw();
            myTableObject.rows.add(result).draw();              
            $('body').removeClass('m-page--loading');
        }).fail(function(jqXHR, textStatus, errorThrown) {
            $('body').removeClass('m-page--loading');
        });
    });

0 个答案:

没有答案