当我在gridview中过滤行没有找到记录时如何禁用导出按钮

Posted

技术标签:

【中文标题】当我在gridview中过滤行没有找到记录时如何禁用导出按钮【英文标题】:How to disable export button when i filter rows in gridview has no records found 【发布时间】:2017-06-25 16:22:06 【问题描述】:

在我的应用程序中,如果在过滤数据时在网格视图中没有找到记录时,我使用数据表插件来过滤网格视图中的行,只有我需要禁用导出按钮。我为此使用了以下代码,但是当我开始过滤按钮禁用时按钮禁用不起作用请帮助我在过滤网格视图中未找到的记录时禁用导出按钮。这里使用数据表插件过滤记录

谢谢

【问题讨论】:

【参考方案1】:

在创建 DataTable 的实例时,您需要声明一个回调属性,该属性将在每次重绘数据表时调用某个方法,这里如果您可以访问数据表对象,那么您可以检查重绘的数据表长度。如果大于 0 则显示导出,否则隐藏。

$('#example').dataTable(
    "drawCallback": function( settings ) 
        var api = this.api(); 
        var dataLength = api.rows( page:'current' ).data().length;
        if (dataLength == 0)       
            document.getElementById('<%= btnExport.ClientID %>').disabled = true;
        
        else 
            document.getElementById('<%= btnExport.ClientID %>').disabled = false;
        
    
);

【讨论】:

嗨@suprabhat-biswal,非常感谢,非常感谢。是否有可能我过滤这些记录以导出到 Excel 表 您必须采取一些变通方法来实现此目的(仅导出过滤记录)。为此,您需要保留已完成的过滤器,并在调用服务器以导出数据时使用这些过滤器内容再次过滤大数据。 嗨@suprabhat-biswal,当我添加上面的代码时,当我在编辑按钮中单击gridview时,我的导出按钮没有禁用,你能告诉我 之前您使用 datatable.js 显示网格,但现在您已从 jQuery 数据表迁移到 Asp.Net Gridview,因此上面的代码将不起作用。我分享的是 jQuery datatbale,而不是 asp.net gridview。请查看您的Edits

以上是关于当我在gridview中过滤行没有找到记录时如何禁用导出按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在Gridview内的表格单元格中找到对文本框的控制

如何按显示的值而不是数据字段值对gridview列进行排序/过滤

如何禁用gridcontrol中列头的过滤器

如何在 aspx 按钮单击上弹出模式并使用 gridview 加载数据?

获取gridview选中行的数据

删除事件后GridView不刷新