this question中提供的答案可能会解决你的问题,尽管在不知道你已经用CSS尝试过什么的情况下很难确定。 django-tables 2的templates that come built-in将所有列属性渲染到最终的HTML中,因此定义为orderable=True的列将生成带有"orderable"类的列标题标签(例如<th class="orderable">)。此外,已选择升序或降序排序的列将在渲染时添加asc或desc类标识符。 因此,您可以设置一个CSS规则,根据orderable列的状态呈现三个不同的箭头图像:
2条答案
按热度按时间wd2eg0qa1#
this question中提供的答案可能会解决你的问题,尽管在不知道你已经用CSS尝试过什么的情况下很难确定。
django-tables 2的templates that come built-in将所有列属性渲染到最终的HTML中,因此定义为
orderable=True
的列将生成带有"orderable"
类的列标题标签(例如<th class="orderable">
)。此外,已选择升序或降序排序的列将在渲染时添加asc
或desc
类标识符。因此,您可以设置一个CSS规则,根据orderable列的状态呈现三个不同的箭头图像:
6ljaweal2#
我尝试了这个答案,但更喜欢列标题的详细名称更接近文本。我在Tableinit()中添加了代码:
为了捕获一个不同的图标来表示排序,我使用了Tables.before_render()。通过查看请求,GET字段有一个键为“sort”的dict,值为field_name。如果是反向排序,field_name有一个-前缀。
这看起来有点像黑客,但我找不到更好的方法。结果是列标题可以反映排序。