2010-11-25 12 views
1

Ich bin auf der Suche nach der Art und Weise, wie Sie ein Kontrollkästchen in der Kopfzeile hinzufügen, die alle meine Kontrollkästchen Spalte meiner Girdview aktiviert oder deaktiviert.Mvc Contrib Grid mit Checkbox

<table class="grid"> 
    <th><input type="checkbox" name="chkall"/></th> 
    <th>Name</th> 
    <tr> 
     <td>  
      <input type="checkbox" id="chkItem_1"/> 
     </td> 
     <td> 
      Category 1 
     </td> 
    </tr> 
    <tr> 
     <td>  
      <input type="checkbox" id="chkItem_2"/> 
     </td> 
      <td> 
      Category 2 
     </td> 
    </tr> 
</table> 

Antwort

9
column.For(x => Html.CheckBox("mycheckbox", new { @class = "foo" })) 
    .DoNotEncode() 
    .Header("<th><input type=\"checkbox\" id="chkHeader" /></th>"); 

Und dann Sie jquery verwenden könnte das Änderungsereignis des Headers Checkbox und aktivieren/deaktivieren Sie alle anderen zu handhaben:

$(function() { 
    $('#chkHeader').change(function() { 
     if ($(this).is(':checked')) { 
      $('.foo').attr('checked', 'checked'); 
     } else { 
      $('.foo').removeAttr('checked'); 
     } 
    }); 
}); 
+2

DoNotEncode() ist veraltet. Verwenden Sie stattdessen Encode (false) – Eldar

5

Folgendes hat für mich gearbeitet:

column.For(x => Html.CheckBox('chkBox', x.Published)).Named('Published');