【问题标题】:Show modal before DataTables JQuery starts ASP NET在 DataTables JQuery 启动 ASP NET 之前显示模式
【发布时间】:2019-02-25 17:20:39
【问题描述】:

我在 ASP NET 项目中使用 DataTables JQuery 1.10.18。

我需要在数据表有任何数据之前显示一个模式对话框,并在所有数据表进程完成后隐藏它。

第二部分由

解决
initComplete: function (settings, json) {
           $('#loading').modal('hide');
        }

其中 'loading' 是模式的 ID。

但是,我的问题是在所有数据绑定到 gridview 之前显示它,或者在任何情况下,在它绑定到 gridview 但尚未应用数据表的样式之后显示它。

我想做这样的事情:

检索数据 - 绑定到 gridview - 显示模式 - 应用数据表样式 - 关闭模式。

应用数据表的所有逻辑都已完成并且可以正常工作。我只有一个问题是需要很多秒才能应用。

我当然试过了

       $('#loading').modal('show');

在调用配置数据表的函数之前,但模式显示在所有配置完成之后。 我也尝试过使用 Promise、回调、settimeout,但总是一样。

澄清

由于项目的后端结构,我们无法使用 AJAX 发出请求。我们有一个问题,我们决定在项目开始后实施 Datatable。 我澄清这一点是因为我们知道 Datatable 擅长将服务器端进程与 AJAX 集成,但对我们来说,这不是(很遗憾)一种选择。

【问题讨论】:

    标签: ajax server datatables backend configure


    【解决方案1】:

    试试这个!将您的数据表放在这样的 div 中:

    <div id="tableDiv" hidden>
    // your table
    </div>
    

    然后当你的数据表被加载时,让它像这样可见:

    $("#yourtable").prop("hidden",false);
    

    编辑:还可以使用此功能了解您的桌子何时完成抽奖事件

    $('#someTable').on( 'draw.dt', function(){
         if (! example.data().any() ) {
              console.log("empty");
            }else {
              console.log("not empty"); 
             //display your table here ?
            }
        });
    

    希望对你有帮助

    【讨论】:

    • 这是一个选项,但这不是我真正想要的。主要问题是用户必须等到应用程序显示一些数据的时间。如果我隐藏数据表,用户可能会认为出了点问题。我知道这只是几秒钟的事情,但这对用户体验不利。我知道我可以在每个 Web 表单中添加另一个加载模式,但这意味着增加应用程序的复杂性。现在所有的 Datatables 问题都由一个 Javascript 文件管理,如果可能的话,我想保持这种状态。
    • @GreatNews 为什么不添加一些原版动画?这样用户就会知道数据正在加载?
    • 我也试过了。但是,它仍然无法正常工作。执行 Datatable 脚本后出现的动画/模态/任何内容。
    • @GreatNews 尝试使用 setTimeout 吗?这将帮助您在几秒钟后显示表格
    • 问题是数据表是在代码隐藏中加载的,并且加载速度很快。我的问题是当我应用数据表脚本时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 2014-06-10
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    相关资源
    最近更新 更多