You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly Dash中AG Grid表格过小无法自适应全屏问题求助

Django集成Plotly Dash中AG Grid表格无法自适应全屏的解决方法

问题描述

在Django集成Plotly Dash的项目中,AG Grid表格显示过短,无法调整尺寸,希望实现自适应全屏显示。尝试过调整aggrid.html、测试Bootstrap类、修改aggrid.py中的布局等多种方法均未解决问题。

相关代码

dashboard/dash_apps/aggrid.py

# dashboard/dash_apps/aggrid.py

from dash import html
import dash_ag_grid as dag
import dash_bootstrap_components as dbc
from django_plotly_dash import DjangoDash
from dashboard.views import get_latest_data
from dashboard.config_views.config import column_settings

external_stylesheets = [dbc.themes.BOOTSTRAP]

app = DjangoDash("AGGrid", external_stylesheets=external_stylesheets)

df = get_latest_data()

column_defs = ..

app.layout = (
    dag.AgGrid(
        id="ag-grid",
        columnDefs=column_defs,
        rowData=df.to_dict("records"),
        defaultColDef={
            "filter": True,
            "sortable": True,
            "resizable": True,
        },
        dashGridOptions={
            "domLayout": "autoHeight",
            "pagination": True,  # 启用分页
            "paginationPageSize": 50,
        },  # 设置每页显示50行
    ),
)

dashboard/templates/dashboard/base.html

<!-- dashboard/templates/dashboard/base.html -->
<!DOCTYPE html>
<html lang="de">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>{% block title %}我的Django应用{% endblock %}</title>
        {% load static %}

        <!-- Bootstrap 5 CSS -->
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
        
        <style>
            html, body {
                height: 100%;
                margin: 0;
            }
            #app {
                height: 100%;
            }
            main {
                height: 100%;
            }
        </style>
    </head>
<body>
    <div id="app" class="container-fluid h-100 d-flex flex-column">
        
        <header class="mb-4">
            <!-- 导航栏 -->
            <nav class="navbar navbar-expand-lg navbar-light bg-light mb-4">
                <div class="container-fluid">
                   ....
                </div>
            </nav>
        </header>

        <main class="flex-grow-1">
            {% block content %}
            <!-- 具体内容将插入此处 -->
            {% endblock %}
        </main>

        <footer class="text-center mt-4">
            <p>&copy; 2023 我的Django应用</p>
        </footer>
    </div>

    <!-- jQuery(Bootstrap依赖) -->
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" crossorigin="anonymous"></script>

    <!-- Bootstrap Bundle 包含Popper.js -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
</body>
</html>

dashboard/templates/dashboard/aggrid.html

<!-- dashboard/templates/dashboard/aggrid.html -->
{% extends 'dashboard/base.html' %}
{% load plotly_dash %}

{% block title %}
  Dash AG Grid 视图
{% endblock %}

{% block content %}
    {% plotly_app name="AGGrid" %}
{% endblock %}

解决方案

修改aggrid.html中的{% plotly_app %}标签,添加height属性,设置为视口高度的百分比(例如85vh),让表格自适应剩余空间:

修改前:

{% plotly_app name="AGGrid" %}

修改后:

{% plotly_app name="AGGrid" height="85vh"%}

内容的提问来源于stack exchange,提问作者coder338

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:29:52