ajax和datatable刷新按钮

时间:2016-02-29 13:51:38

标签: javascript ajax datatable

(对不起我的英文)

我的问题:我有一个函数发送一个请求谁用或不用参数绘制表。首先是关于页面的onload,然后在搜索之后单击谁发送一个param(数据actor等)。 我在表中有两个按钮(每行)(修改(修饰符)和删除(supprimer)一行)我的BIG问题是,当我使用删除按钮后搜索点击,首先,程序要删除旧行和下一秒程序要删除好行。最奇怪的是修改按钮完美运行..它从不欺骗行...

显然按钮会删除第一张表格的行(在搜索之前),但它不适合所有人!

function scanrecherche(environnementDep, statutDep){   

var table = $('#etableau').DataTable(
{                
    "ajax": 
    {            
        "url": 'url',
        "type": "GET",
        "dataSrc": '',
         data: {"actor": actor, "version": version, "environnement": environnement, "appState": appState, "appli": appli, "nbmax": nbmax}
    },
    "aaSorting": [[ 6, 'asc' ]],
    "destroy": true,
    "columns":
            [
                {"data": "actor"},
                {"data": "version"},
                {"data": "environnement"},
                {"data": "appState"},
                {"data": "appli"},
                {"data": "note"},
                {"data": "cDate"},
                {"data": "updateDate"},
                {"data": "instancid"},
                {"className": 'modifier',
                    "orderable": false,
                    "data": null,
                    "defaultContent": ''},
                {"className": 'supprimer',
                    "orderable": false,
                    "data": null,
                    "defaultContent": ''}
            ],
    language:
            {
                processing: "Traitement en cours...",
                search: "Rechercher :",
                lengthMenu: "Afficher _MENU_ éléments",
                info: "Affichage de l'élement _START_ à _END_ sur _TOTAL_ éléments",
                infoEmpty: "Affichage de l'élement 0 à 0 sur 0 éléments",
                infoFiltered: "(filtré de _MAX_ éléments au total)",
                infoPostFix: "",
                loadingRecords: "Chargement en cours...",
                zeroRecords: "Aucun élément à afficher",
                emptyTable: "Aucune donnée disponible dans le tableau",
                paginate: {previous: "Précédent",next: "Suivant"}
            },
            "columnDefs":
            [   
                {"width": "150px", "targets": 5},
                {"width": "130px", "targets": 6},
                {"width": "100px", "targets": 7}
            ],             
         "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) 
         {
                if (aData.appState === "Active")
                    nRow.className=( "Active" );
         }
}); 


$('#etableau tbody').on('click', 'td.modifier', function () 
{
    var tr = $(this).closest('tr');
    var row = table.row(tr);

    var value = row.data().cDate;
    location.href = "Modifier.html?Date="+value;
});

$('#etableau tbody').on('click', 'td.supprimer', function () 
{    
    var tr = $(this).closest('tr');
    var row = table.row(tr);

    if (row.data().appState === "Active")
    {
        alert("Attention : La suppression d'une version Active est impossible");
    }
    else
    {                    
        var r = confirm("Vous êtes sur le point de supprimer la ligne : \n\n  Version : "+row.data().version+"\n  Date : "+row.data().cDate+"\n  Environnement : "+row.data().environnement+"\n  Application : "+row.data().appli+"\n  Statut : "+row.data().appState+" \n\nEtes vous sûr?");
        if (r === true) 
        {           
            $("#MENU").hide();
            $("#MENUload").show();
            delURL(row.data().cDate, row.data().version);
        } 
    }        
});

}

1 个答案:

答案 0 :(得分:0)

笑话是..每次我使用“搜索”按钮,它都会调用“scanrecherche”函数并重新创建 $('#etableau tbody')。on('click','td.modifier',function())和 $('#etableau tbody')。on('click','td.supprimer',function())....