【问题标题】:stop event execution on datatable pagination click在数据表分页单击时停止事件执行
【发布时间】:2018-07-24 06:00:19
【问题描述】:

我有一个内联数据表,当我更改数据表中的数据并单击下一页时,我需要显示引导模式。 如果单击yes,则应保存数据并在数据表中显示下一页。当我点击 no 时,它应该保持在同一页面上 现在,问题是没有点击数据表中的是/否按钮,它会进入下一页而不等待用户响应。它应该保持在同一页面上。我尝试了以下方法来停止事件执行。

e.preventDefault()
e.stopPropogation()
e.stopImmediatePropogation()

上述事件不起作用。非常感谢您的帮助。提前致谢。

【问题讨论】:

    标签: javascript c# jquery asp.net datatable


    【解决方案1】:

    您应该使用preDraw 事件,因为数据也可能在分页或排序时丢失。还要确保您使用的是最新的数据表版本1.10.19。 文档:https://datatables.net/reference/event/preDraw

    var table = $('#example').DataTable();
    table.on( 'preDraw', function (e, settings) {
        if(!confirm('Leave?')) {
            return false;
        }
    });
    

    jsfiddle:http://jsfiddle.net/ebRXw/6258/

    检查所有可用的事件:https://datatables.net/reference/event/

    您还可以组合orderpage 事件。 类似的东西:

    var table = $('#example').DataTable();
    table.on( 'order.dt', myConfirm);
    table.on( 'page.dt', myConfirm);
    
    function myConfirm(e, settings) {
        if(!confirm('Leave?')) {
            return false;
        }
    }
    

    【讨论】:

    • 上述代码能够停止执行,但是当我们更改网格中的数据时,我将类名附加到特定行。当我们在弹出窗口中单击“是”时,由于 preDraw 事件,我无法获取已编辑的行。
    【解决方案2】:

    我在 datatables.net 论坛上得到了这个答案的解决方案。

    var table=$('#grid').datatable();
    table.settings()[0].jqXHR.abort(); 
    

    它将中止 ajax 请求。

    【讨论】:

      猜你喜欢
      • 2015-01-02
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2017-11-24
      相关资源
      最近更新 更多