JS 等待 Datatables 服务器端数据加载

JS wait for Datatables serverside data to load

提问人:tealy 提问时间:6/11/2022 更新时间:6/11/2022 访问量:112

问:

我有一个用于加载数据的表,我写了一个代码,为每个表分配一个带有 javascript 的 href,因为服务器端启用了我无法为每个 td 分配一个 href。因此,每次页面更改或调用搜索查询时,我都需要将 href 分配给客户端表行。

这是我到目前为止所说的:

function assign_href_to_tables() {
console.log("Run assign_href_to_tables");
   // access all td variables when serverside enabled.
  $('#table').on( 'order.dt', function () {
      var table_rows = $('#table').find('tbody tr');
      console.log(table_rows)
      // scan through table rows and assign onclick event to each row.
      table_rows.each(function(index, element) {
        $(this).click(function() {
          var id = $(this).find('td:nth-child(1)').text();
          // reidrect to the edit page with the id of the clicked row
          window.document.location = '/detail/' + id;
        });
      });
    } );

  
}

我在例如:assign_href_to_tablesinitComplete

"initComplete": function( settings, json ) {
        assign_href_to_tables();
      },

如果我在文档就绪时调用该函数,它只会影响第一页。当页面更改或搜索请求查询时,href 停止工作。

我试图点击这个链接,但我不明白它,也无法实现它。

只要我理解,问题出现不会等待表数据加载。我不知道我的工作中缺少什么。谢谢。initComplete

JavaScript 数据表 服务器端

评论

0赞 icecub 6/11/2022
不幸的是,我根本没有使用数据表的经验。但是,如果您需要等待某些事情完成服务器端,您很可能正在寻找 jQuery ajax。它将请求发送到服务器。服务器完成处理后,将其输出发送回 Javascript。Javascript 将在收到来自服务器的响应的那一刻开始处理。它比使用计时器等可靠得多。
0赞 andrewJames 6/11/2022
我不确定我是否理解这个问题。您提到了“为每个表分配一个 href 的代码”,但您的代码示例似乎没有这样做 - 它似乎分配了单击事件。另外,为什么使用会阻止您创建链接?这应该没有任何区别。serverSide: truehref
0赞 andrewJames 6/11/2022
无论您尝试做什么,似乎都无关紧要,因为 DataTable 只初始化一次。如果要创建链接,可以使用标准的 DataTables 呈现函数。如果你想分配事件,那么你可以使用 jQuery 委托事件 - 但我不清楚你到底想要什么,在这里。你能编辑这个问题来澄清吗?initComplete

答: 暂无答案