选择django_tables2中的所有行

时间:2012-10-17 17:03:25

标签: django django-tables2

我尝试通过单击CheckBoxColumn中的上部复选框来选择表中的所有行,并使用以下定义:

selection = tables.CheckBoxColumn(accessor="pk", orderable=False)

但是没有选择行,还有什么我需要做的吗?我使用的是django 1.4.1和django_tables2 0.13.0。

2 个答案:

答案 0 :(得分:13)

可以通过替换标题单元格中的input属性来选中CheckBoxColumn中的所有复选框:

selection = tables.CheckBoxColumn(accessor="pk", attrs = { "th__input": 
                                        {"onclick": "toggle(this)"}},
                                        orderable=False)

然后模板文件中的这个JavaScript构造应该do the work

<script language="JavaScript">
function toggle(source) {
    checkboxes = document.getElementsByName('selection');
    for(var i in checkboxes)
        checkboxes[i].checked = source.checked;
}
</script>

答案 1 :(得分:3)

不幸的是CheckBoxColumn非常简陋。标题复选框不会执行任何操作,您可以编写JavaScript以使其正常工作。有计划让这更加无缝,但不是很快就会发生。