动态更改django中单元格的颜色

时间:2014-08-21 16:35:00

标签: javascript ajax django html-table django-tables2

我想基于值动态更改单元格的背景颜色。 我使用django-tables2渲染我的表并且工作正常。 这是我在模板中呈现表格的代码:

{% load querystring from django_tables2 %}
{% load trans blocktrans from i18n %}
{% load bootstrap_toolkit %}

{% if table.page %}
    <div class="table-container">
{% endif %}

{% block table %}
    <table class="table table-compact table-bordered"{% if table.attrs %} {{ table.attrs.as_html }}{% endif %}>
        {% block table.thead %}
            <thead>
            <tr>
                {% for column in table.columns %}
                    {% if column.orderable %}
                        <th {{ column.attrs.th.as_html }}><a href="{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}">{{ column.header }}</a></th>
                    {% else %}
                        <th {{ column.attrs.th.as_html }}>{{ column.header }}</th>
                    {% endif %}
                {% endfor %}
            </tr>
            </thead>
        {% endblock table.thead %}
        {% block table.tbody %}
            <tbody>
            {% for row in table.page.object_list|default:table.rows %} {# support pagination #}
                {% block table.tbody.row %}
                    <tr class="{% cycle "odd" "even" %}">
                        {% for column, cell in row.items %}
                            <td {{ column.attrs.td.as_html }}>{{ cell }}</td>
                        {% endfor %}
                    </tr>
                {% endblock table.tbody.row %}
            {% empty %}
                {% if table.empty_text %}
                    {% block table.tbody.empty_text %}
                        <tr><td colspan="{{ table.columns|length }}">{{ table.empty_text }}</td></tr>
                    {% endblock table.tbody.empty_text %}
                {% endif %}
            {% endfor %}
            </tbody>
        {% endblock table.tbody %}
        {% block table.tfoot %}
            <tfoot></tfoot>
        {% endblock table.tfoot %}
    </table>
{% endblock table %}
   </div>
{% if table.page %}
    {% block pagination %}
        {{ table.page|pagination }}
    {% endblock pagination %}
{% endif %}

我怀疑django-tables2或Django是否有一些属性来评估单元格的值,或者我需要创建一个JavaScript函数。 请给我一些链接或代码片段以实现此功能

提前致谢

1 个答案:

答案 0 :(得分:0)

这个答案很长一段时间了,但您现在可以在列上使用attrs执行此操作,正如所示here

class StatusColumn(Column):
    attrs = {'td': {'class': lambda value: f'status-{value}'}}

这会在class元素上设置<td /> HTML属性以匹配单元格的值。

此外,看起来你手动完成了{% render_table ... %}现在所做的大量工作,所以如果你重新审视这个,请看看你可以用新功能简化什么。