2013-04-24 12 views
9

Ich wollte eine Checkbox-Spalte als erste Spalte unter Raster hinzufügen. Kann mir jemand helfen, es hinzuzufügen?Checkbox-Spalte mit Kendo-Gitter

@(Html.Kendo().Grid(Model) 
     .Name("items") 
     .Columns(columns => 
     { 
      columns.Bound(p => p.itemname).Title("Name"); 
      columns.Bound(p => p.cost).Title("Cost"); 
      columns.Bound(p => p.stockinhand).Title("Stock in hand"); 
      columns.Command(command => command.Destroy()).Width(100); 
     }) 
    .Pageable() 
      .DataSource(dataSource => dataSource 
       .Server() 
       .Model(model => model.Id(p=>p.Id)) 
       .Destroy(update => update.Action("EditingInline_Destroy", "Grid")) 
      ) 
) 

Antwort

17

Dies ist, wie ich es tat:

columns.Template(@<text></text>).ClientTemplate("<input type='checkbox' #= IsAdmin ? checked='checked':'' # class='chkbx' />") 

und dann auf javascript:

$(function() { 
    $('#grid').on('click', '.chkbx', function() { 
     var checked = $(this).is(':checked'); 
     var grid = $('#grid').data().kendoGrid; 
     var dataItem = grid.dataItem($(this).closest('tr')); 
     dataItem.set('IsAdmin', checked); 
    }) 
}) 
+2

Wie deaktiviere ich ein Gitter mit InLine-Bearbeitungsmodus, bis die Zeile in den Bearbeitungsmodus wechselt? –

+0

Wie man ein Datenlabel hinzufügt? Ich versuchte mit ==> columns.Template (@) .ClientTemplate (" ") –

3

Hallo Sie können hinzufügen Checkbox in Kopf- und Spalte wie unten:

columns.Bound(p => p.Status).HeaderTemplate("<input id='selectall' class='chkbx' type='checkbox' onclick='ToggleChkBox(this.checked);' />").ClientTemplate("<input id='checkbox' onclick='grdChkBoxClick(this); ' class='chkbxq' type='checkbox' />").Sortable(false).Filterable(false).Width(30); 

Und FInd Checkbox klicken Sie wie folgt:

//Cell click Checkbox select 
$('#Grid').on("click", "td", function (e) { 
    var selectedTd = $(e.target).closest("td"); 
     var grdChkBox = selectedTd.parents('tr').find("td:first").next("td").find('input:checkbox'); 
     grdChkBox.prop('checked', !grdChkBox.prop('checked')); 

}); 

und alles tun, Checkbox Funktionalität prüfen wie unten:

function ToggleChkBox(flag) { 
    $('.chkbxq').each(function() { 
     $(this).attr('checked', flag); 
    }); 
} 
3

ich normalerweise eine boolean Spalte im Modell hinzufügen; wie folgt.

@(Html.Kendo().Grid(Model) 
    .Name("items") 
    .Columns(columns => 
    { 
     columns.Bound(p => p.status).ClientTemplate("<input type='checkbox' disabled #= status == true ? checked='checked' : '' # />"); 
     columns.Bound(p => p.itemname).Title("Name"); 
     columns.Bound(p => p.cost).Title("Cost"); 
     columns.Bound(p => p.stockinhand).Title("Stock in hand"); 
     columns.Command(command => command.Destroy()).Width(100); 
    }) 
.Pageable() 
     .DataSource(dataSource => dataSource 
      .Server() 
      .Model(model => model.Id(p=>p.Id)) 
      .Destroy(update => update.Action("EditingInline_Destroy", "Grid")) 
     ) 
) 

Und um sie zu deaktivieren, bis Sie auf „Bearbeiten“ drücken Sie die Taste fügen Sie einfach „disabled“ im ClientTemplate. Das sollte es tun. Vielen Dank.