首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当datatable为空时,如何禁用datatable导出按钮(或防止单击事件)?

当datatable为空时,如何禁用datatable导出按钮(或防止单击事件)?
EN

Stack Overflow用户
提问于 2016-10-05 06:22:53
回答 3查看 6.7K关注 0票数 1

我使用的是数据表,当网格有空行时,我需要禁用导出按钮(Excel,PDF)。如何处理datatable导出按钮,单击操作?

我已经完成了网格初始化如下所示。我不知道如何处理datatable导出按钮(PDF,Excel)。你能帮我解决这个问题吗。

更新:

  1. 我还有一个问题,当用户单击Excel或PDF按钮时,网格列的宽度就会崩溃。

,我甚至需要用户点击Excel或PDF按钮,网格列的宽度不应该改变。我们如何才能做到这一点?

  1. 将数据导出到excel后,表格中的列不会自动调整。 如何使列(将数据表数据导出到excel后)自动调整? var buttonCommon ={ exportOptions:{exportOptions:{exportOptions:函数(数据、列、行、节点){返回数据;};var dataTableObj ={ "scrollX":true,"columns":{ "data":"CollegeName","width":"30%“},{”数据“:"AffiliatedTo",”宽度“:”15%“},{”数据“:"TPOName",“宽度”:“20%”},{“数据”:"Phone",},{ "data":“网站”,"bSortable":false },dom:'lBfrtip',按钮:$.extend(真,{},buttonCommon,{ extend:‘excelHtml5 5’,标题:‘学院’,} ),{ extend:'pdf',标题:‘学院’},fnRowCallback:函数(nRow,aData,iDisplayIndex) {//某些代码返回nRow;};var dataTbl =$(‘#tblCollege’).DataTable(DataTableObj);
EN

回答 3

Stack Overflow用户

发布于 2016-10-13 08:31:12

我不知道在多大程度上遵循解决方案是有意义的,但它已经解决了我的问题。

当网格有空行时,我需要禁用导出按钮(Excel,PDF)。如何处理datatable导出按钮,单击操作?

在这里,我已经完成了可数据操作属性。

代码语言:javascript
复制
       buttons: [{
      extend: 'excelHtml5',
      title: 'Colleges',
      action: function(e, dt, button, config) {
        if (this.data().length > 0) {

          $.fn.dataTable.ext.buttons.excelHtml5.action(e, dt, button, config);
          $scope.hasAlert = 0;
          $scope.$apply();
        } else {
          $scope.hasAlert = 2;
          $scope.alertMsg = __APP_MESSAGE__.GridEmptyMsg;
          $scope.$apply();
        }
      }

    }, {
      extend: 'pdf',
      title: 'Colleges',
      action: function(e, dt, button, config) {
        if (this.data().length > 0) {

          $.fn.dataTable.ext.buttons.pdfHtml5.action(e, dt, button, config);
          $scope.hasAlert = 0;
          $scope.$apply();
        } else {
          $scope.hasAlert = 2;
          $scope.alertMsg = __APP_MESSAGE__.GridEmptyMsg;
          $scope.$apply();
        }
      }
    },

  ]
票数 2
EN

Stack Overflow用户

发布于 2017-11-16 11:04:32

这个解决方案已经适用于我,把它放在fnDrawCallback函数中。

代码语言:javascript
复制
$(tableName).dataTable({

 "fnDrawCallback":function () {
                   var table = $(tableName).DataTable();
                    if (table.data().length === 0)
            table.buttons('.buttons-html5').disable();
                 else
            table.buttons('.buttons-html5').enable();


            } 
});
票数 0
EN

Stack Overflow用户

发布于 2022-01-15 08:53:40

处理datatable导出按钮单击操作的最简单方法是创建自己的按钮,并在单击按钮时触发datatable导出按钮的。这样,您将处理所创建按钮的单击操作:

代码语言:javascript
复制
$('#exportBtn').on('click', function () {
  dataTbl.button(0).trigger();
});

您可以删除dom: 'lBfrtip'以隐藏原始数据表按钮。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39866749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档