2013-04-24 10 views
9

グリッドの下に最初の列としてチェックボックス列を追加したかったのですが、 追加方法を教えていただけますか?剣道グリッドのチェックボックス列

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

答えて

17

これは私がそれをやった方法です:

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

して、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

InLine Editモードのグリッドを使用すると、行が編集モードになるまでこのチェックボックスを無効にするにはどうすればよいですか? –

+0

データラベルを追加するには? 私は==> columns.Template(@)を試しました.ClientTemplate( "') –

3

こんにちはあなたはヘッダーにチェックボックスを追加し、以下のような列ができます。

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

また、以下のようにチェックボックスをオンにしてください:

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

}); 

、以下のようなすべてのチェックボックスの機能チェックを実行します。私は、通常モデルのbooleanカラムを追加

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

を。次のように。

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

「編集」ボタンを押すまで無効にするには、ClientTemplateに「無効」を追加します。それはそれを行う必要があります。ありがとう。