找回密码
 立即注册

QQ登录

只需一步,快速开始

495428834

注册会员

3

主题

4

帖子

21

积分

注册会员

积分
21
495428834
注册会员   /  发表于:2020-7-21 16:06  /   查看:2328  /  回复:1
image.png218888549.png
问题:隐藏表单自带的过滤按钮,如何实现点击自定义按钮,弹出过滤弹框??
(代码如下)


<html>
<head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" type="text/css" href="https://cdn.grapecity.com.cn/spreadjs/css/gc.spread.sheets.12.0.6.css">
    <script src="https://cdn.grapecity.com.cn/spreadjs/scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
    <script src="https://cdn.grapecity.com.cn/spreadjs/scripts/gc.spread.sheets.all.12.0.6.min.js" type="text/javascript"></script>
    <script src="https://cdn.grapecity.com.cn/spreadjs/scripts/resources/zh/gc.spread.sheets.resources.zh.12.0.6.min.js" type="text/javascript"></script>
    <style>
        .sample-tutorial {
            position: relative;
            height: 100%;
            overflow: hidden;
        }
    </style>
</head>
<body>
    <div id="ss" style="width:100%;height:500px;border:1px solid gray"></div>
    <input type="button" id="btn" value="Click" />
<script>

    $(document).ready(function () {
        var spread = new GC.Spread.Sheets.Workbook($("#ss").get(0));
        var sheet = spread.getActiveSheet();
        spread.suspendPaint();
        for (var i = 0; i < 10; i++) {
            sheet.setValue(i, 0, i);
        }
        sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(1, 0, 10, 1)));

        //显示自带过滤按钮时,点击button弹出过滤弹框,但自带过滤按钮不显示,点击button不显示过滤弹框,且报错
        // sheet.rowFilter().filterButtonVisible(true);
        sheet.rowFilter().filterButtonVisible(false);
        spread.resumePaint();
        $("#btn").click(function () {
            // sheet.rowFilter().openFilterDialog();
            sheet.rowFilter().openFilterDialog(sheet.hitTest(97, 30).filterButtonHitInfo);
        })
    });

</script>
</body>
</html>



1 个回复

倒序浏览
Fiooona
论坛元老   /  发表于:2020-7-21 18:31:38
沙发
本帖最后由 Fiooona 于 2020-7-22 14:06 编辑
  1.     spread.suspendPaint();
  2.             for (var i = 0; i < 10; i++) {
  3.                 sheet.setValue(i, 0, i);
  4.             }
  5.             sheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(1, 0, 10, 1)));
  6.    
  7.             //显示自带过滤按钮时,点击button弹出过滤弹框,但自带过滤按钮不显示,点击button不显示过滤弹框,且报错
  8.             // var rowFilter= sheet.rowFilter().filterButtonVisible(true);
  9.             var rowFilter= sheet.rowFilter().filterButtonVisible(false);
  10.             spread.resumePaint();
  11.             $("#btn").click(function () {
  12.                 // sheet.rowFilter().openFilterDialog();
  13.                 var row = 0, col = 0;
  14. sheet.getCellRect(row, col);
  15. //Rect {x: 412, y: 60, width: 62, height: 20}
  16. var celRect = sheet.getCellRect(row, col);

  17. var filterInfo = {
  18.     "rowFilter": rowFilter,
  19.     "row": row,
  20.     "col": col,
  21.     "sheetArea": 3,
  22.     "x": celRect.x + celRect.width - 20,
  23.     "y": celRect.y,
  24.     "width": 20,
  25.     "height": 20
  26. }
  27. rowFilter.openFilterDialog(filterInfo)
  28.                 // sheet.rowFilter().openFilterDialog(sheet.hitTest(97, 30).filterButtonHitInfo);
  29.       
  30.             })
复制代码
给 openFilterDialog方法传参做了一些修改,可以实现您的需求
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部