ag-grid 自适应大小

ag-grid 表格需要自适应浏览器窗口大小,以下为没有自适应的情况:

以下为已经自适应的情况:

 如果需要自适应,统一调用api:sizeColumnsToFit() 即可,只不过调用的触发事件不同。 分别有以下三种情况出现:

情况1:表格初始化完毕后自适应浏览器大小。

触发事件:ag-grid中的onGridReady事件:在表格ok后调用,适应浏览器大小。

情况2: 当浏览器页面大小没变,但是表格大小有变化时,也重绘至自适应浏览器大小

触发事件:ag-grid中的onGridSizeChanged事件:在表格大小有变化时调用,适应浏览器大小。

情况3:浏览器大小变化时,gird自适应浏览器大小。

触发事件:window的监听事件:window.addEventListener:在浏览器窗口大小有变化时调用,适应浏览器大小。

       window.addEventListener('resize', () => {
            gridOptions.api.sizeColumnsToFit();
        });

情况4:当以上都不满足时,可以试试onColumnEverythingChanged这个属性。

下面是一个ag-grid的完整例子:

<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>表格适应页面大小</title>
    <script type="text/javascript" src="../js/ag-grid-enterprise.min.js"></script>

</head>

<body>

    <div id="myGrid" style="width: 100%;height: 500px;" class="ag-theme-alpine"></div>

    <script>
     
        var columnDefs = [
            {
                headerName: '姓名',
                field: 'name'
            }, {
                headerName: '性别',
                field: 'sex',
            }, {
                headerName: '年龄',
                field: 'age',
            }, {
                headerName: '籍贯',
                field: 'jg'
            }, {
                headerName: '省份',
                field: 'sf',
            }, {
                headerName: '地址',
                field: 'dz'
            },
        ];
        var data = [
            { name: '张三', sex: '男', age: '100', 'jg': '中国', 'sf': '浙江', 'dz': '杭州市古墩路1号' },
            { name: '李四', sex: '男', age: '5', 'jg': '中国', 'sf': ' 浙江', 'dz': '杭州市古墩路12号' },
            { name: '王舞', sex: '女', age: '20', 'jg': '中国', 'sf': '浙江 ', 'dz': '杭州市古墩路32号' },
            { name: '李梅', sex: '女', age: '10', 'jg': '中国', 'sf': '浙江 ', 'dz': '杭州市古墩路39号' },

        ];

        // 表格适应页面大小
        function onTotalGridReady(params) {
            gridOptions.api.sizeColumnsToFit();//调整表格大小自适应
        }

        //将列和数据赋给gridOptions 
        var gridOptions = {
            columnDefs: columnDefs,
            rowData: data,
            onGridReady: onTotalGridReady, // 情况一: 表格初始化完毕,自适应浏览器大小。
            onGridSizeChanged: onTotalGridReady,  //情况二: 当浏览器页面大小没变,但是表格大小有变化时,也重绘至自适应浏览器大小
           // onColumnEverythingChanged:onTotalGridReady  
        };


        // 情况三: 浏览器大小变化时,gird自适应浏览器大小
        window.addEventListener('resize', () => {
            gridOptions.api.sizeColumnsToFit();
        });

        document.addEventListener("DOMContentLoaded", function () {
            var eGridDiv = document.querySelector('#myGrid');
            new agGrid.Grid(eGridDiv, gridOptions);
        });
    </script>
</body>

</html>

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ag-Grid Vue 是一个用于构建灵活的、高性能的数据表格和数据网格的 Vue 组件库。它是与 Vue 框架集成的 ag-Grid 社区版。使用 ag-Grid Vue,您可以轻松地在 Vue 应用程序中创建功能丰富的数据表格和网格,并利用 ag-Grid 提供的丰富功能和性能优势。 要在 Vue 应用程序中使用 ag-Grid Vue,您需要先安装 ag-Grid Vue 包。您可以使用 npm 或 yarn 进行安装: ```bash npm install --save ag-grid-vue # 或 yarn add ag-grid-vue ``` 安装完成后,您可以在 Vue 组件中引入并使用 ag-Grid Vue: ```vue <template> <ag-grid-vue :columnDefs="columnDefs" :rowData="rowData" class="ag-theme-alpine" ></ag-grid-vue> </template> <script> import { AgGridVue } from 'ag-grid-vue'; export default { components: { AgGridVue, }, data() { return { columnDefs: [...], // 列定义 rowData: [...], // 行数据 }; }, }; </script> <style> @import '~ag-grid-community/dist/styles/ag-grid.css'; @import '~ag-grid-community/dist/styles/ag-theme-alpine.css'; </style> ``` 在上面的示例中,您可以通过传递列定义(columnDefs)和行数据(rowData)来配置 ag-Grid Vue 组件。您还需要为 ag-Grid 使用的主题样式添加对应的 CSS。 只是一个简单的示例,您可以根据您的需求和数据结构进行更多的配置和自定义。您可以参考 ag-Grid Vue 的官方文档以获取更多详细信息和示例代码。希望这可以帮助您开始使用 ag-Grid Vue!如果有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值