Search code examples
djangodjango-tables2

select all rows in django_tables2


I have tried to select all rows in a table by clicking on the upper check box in a CheckBoxColumn with the following definition:

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

However the rows are not selected, is there anything else I need to do? I am using django 1.4.1 and django_tables2 0.13.0.


Solution

  • It is possible to select all checkboxes in a CheckBoxColumn by replacing the input attribute in the header cell:

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

    Then this JavaScript construct in the template file should do the work.

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