2012-10-17 58 views
2

我曾嘗試通過點擊上方複選框在CheckBoxColumn如下定義選擇表中的所有行:選擇django_tables2所有行

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

然而,行不選擇,有什麼否則我需要做?我使用的是django 1.4.1和django_tables2 0.13.0。

回答

11

有可能通過在頭單元替換所述輸入屬性來選擇在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> 
+0

+1正是我所期待的 – CIGuy

3

不幸的是CheckBoxColumn是非常裸露的骨頭。標題複選框沒有任何作用,您可以通過編寫JavaScript來使其工作。有計劃讓這更加無縫,但不會很快發生。

+0

謝謝,你能指點我一個JavaScript的例子,可以通過選擇標題框來選擇表中的所有行嗎? –

+1

我不知道任何會輕易融入我頭腦的東西,但我知道這個功能存在於'django.contrib.admin'網絡用戶界面中。也許有看看嗎? –