2010-11-25 6 views
1

Je cherche comment ajouter une case à cocher sur l'en-tête qui supporte la case cochée ou décochée de ma checkbox de mon girdview.Mvc Contrib grille avec case à cocher

<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> 

Répondre

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

Et vous pouvez utiliser jquery pour gérer l'événement de changement de la case en-tête et cocher/décocher toutes les autres: pour moi

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

DoNotEncode() est obsolète. utilisez Encode (false) à la place – Eldar

5

Ce qui suit a travaillé:

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