2013-04-24 8 views
9

Chciałem dodać kolumnę checkbox jako pierwszą kolumnę poniżej siatki. Czy ktoś może mi pomóc, jak go dodać?Kolumna Checkbox z siatką Kendo

@(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")) 
      ) 
) 

Odpowiedz

17

To jak to zrobiłem:

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

a następnie w 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

Czy przy użyciu siatki z trybem edycji InLine wyłączam to pole wyboru, dopóki linia nie przejdzie w tryb edycji? –

+0

Jak dodać etykietę danych? Próbowałem z ==> columns.Template (@) .ClientTemplate ("

I pole wyboru FInd kliknij poniżej:

//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')); 

}); 

A czy pole wyboru Sprawdź wszystkie funkcje jak poniżej:

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

normalnie dodać logiczną kolumny w modelu; jak podążanie.

@(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")) 
     ) 
) 

A żeby wyłączyć, dopóki nie naciśniesz przycisku "Edytuj", po prostu dodaj "disabled" w ClientTemplate. Że należy to zrobić. Dzięki.