Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 853
gypaetus Avatar asked Oct 17 '12 17:10

gypaetus


Video Answer


2 Answers

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>
like image 142
gypaetus Avatar answered Sep 21 '22 15:09

gypaetus


Unfortunately CheckBoxColumn is very bare-bones. The header checkbox does not do anything, and it's up to you to write JavaScript to make it work. There are plans to make this more seamless, but aren't like to happen soon.

like image 25
bradley.ayers Avatar answered Sep 23 '22 15:09

bradley.ayers