【问题标题】:DataTable get data on button clickDataTable 在按钮单击时获取数据
【发布时间】:2017-07-01 19:11:15
【问题描述】:

我在我的应用程序中使用带有服务器端处理的 jQuery DataTables 插件。截至目前,表已初始化并加载了数据,当 文件准备好了。代码如下:

jQuery(document).ready(function() {
    var table = DataTables.create("#projectTable", parameters, {
                    ajax: {
                        url: 'project/search.do',
                        data: function(d) {
                                d.numberOfColumns = 6
                                d.submittedOnStart = jQuery("#date1").val(),
                                d.submittedOnEnd = jQuery("#date2").val()                           
                        },
                        dataSrc: "rows",
                        type: 'GET'
                    },
                    columns: getColumns(),
                    "columnDefs": getColumnDefs()
                });
});

这工作正常。但是,我想改变它,使表格在文档准备就绪时初始化,但数据是在按钮单击时加载的。我查看了Load DataTable data through button Click,这在我的情况下不起作用。有没有办法做到这一点?

【问题讨论】:

  • var table = jQuery("#projectTable").DataTable({ /* init options */ }); 在你的 doc.ready 函数中有什么问题?
  • 感谢 Mhodges 的回复。那部分没有任何问题。那做得很好。但是,如何在按下按钮时将数据加载到已经初始化的表中?
  • 啊,抱歉,我误读了您的问题。我以为你只是在问如何初始化文件准备好的表格。我相信.reload() 是您正在寻找的。 datatables.net/reference/api/ajax.reload()
  • 如果您出于任何原因需要更改 ajax 数据源,您可以使用 .url().load() 链接,如文档中所述。 datatables.net/reference/api/ajax.url()datatables.net/reference/api/ajax.url().load()

标签: jquery datatables


【解决方案1】:

利用.url.load 通过单击按钮来刷新表格。

jQuery(document).ready(function() {
  var table = DataTables.create("#projectTable", parameters, {
    ajax: {
      url: 'project/search.donot',
      data: function(d) {
        d.numberOfColumns = 6
        d.submittedOnStart = jQuery("#date1").val(),
          d.submittedOnEnd = jQuery("#date2").val()
      },
      dataSrc: "rows",
      type: 'GET'
    },
    columns: getColumns(),
    "columnDefs": getColumnDefs()
  });
  $('#thisbutton').click(function() {
    // you can reload your data here. You can call a different file if you need to change the data returned
    table.ajax.url( "project/search.do" ).load();
  });
});

【讨论】:

  • "...以这样的方式表格在文档准备就绪时初始化,但数据在按钮单击时加载"跨度>
  • @mhodges - 阅读他的问题下方的 cmets,他没有正确输入他的问题他要求按钮单击 But, how can I load data into the already initialized table on button press? 他的标题甚至反映了 DataTable get data on button click
  • 这将在每次按钮单击时启动表格。我希望在页面加载时启动表格,只需在点击时进行 ajax 调用,然后使用来自 ajax 调用的 json 响应加载表格。
  • 啊,请稍等
  • 编辑看起来不错。但是,我们最初可以创建一个没有数据的表吗?那是在页面加载时,我们初始化一个没有数据的表,然后在按钮单击时用数据填充表?
猜你喜欢
  • 2017-03-24
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
相关资源
最近更新 更多