2016-10-19 17 views
0

私はチェックボックスのクライアントテンプレートで剣道グリッドを使用していますが、その行を関数に渡したいと思います。このラインでは剣道グリッドmvc - javaScript関数を通してグリッド行を渡す

<div> 

    @(Html.Kendo().Grid(Model).Name("EvaluationFormGrid").DataSource(dataSource => dataSource 
      .Ajax() 
      .Model(model => 
      { 
       model.Id(m => m.EventEvaluationFormId); 
       model.Field(m => m.EventEvaluationFormId).Editable(false); 
      }) 
      .Destroy(delete => delete.Action("DeleteEvaluationForm", "EvaluationFormsManagement")) 
      .PageSize(60) 
      .ServerOperation(false) 
     ).Columns(c => 
      { 
       c.Bound(m => m.EvaluationFormTitle).Width(150).Title("Evaluation Form Title"); 
       c.Bound(m => m.EvaluationFormLink).Width(300).Title("Evaluation Form Link"); 
       c.Bound(m => m.ModifiedUserName).Title("Mod. by").Width(80); 
       c.Bound(m => m.ModifiedDateUtc).Title("Mod. date").Width(80); 
       c.Bound(m => m.IsDisplayedInApp).Title("Is displayed in app").Width(80) 
       .ClientTemplate("<input type='checkbox' #= IsDisplayedInApp ? checked='checked' :'' # value='#=IsDisplayedInApp#' onClick='onChange(#=IsDisplayedInApp#)'/>"); 
       c.Bound(m => m.EventEvaluationFormId).Title(string.Empty).Width(80) 
        .ClientTemplate("<a class='table-entry-control edit-entry-control' href='" + Url.Action("ManageEvaluationForm", "EvaluationFormsManagement", 
         new { area = "Admin" }) + "/#= EventEvaluationFormId #'" + "><span class=\"k-icon k-edit\"></span>Edit</a><br />") 
        .Sortable(false); 
       c.Command(commands => 
       { 
        commands.Destroy(); 

       }).Title("").Width(80); 

      }) 
      .Events(events => events.Change("onChange")) 
      .Editable(e => e.DisplayDeleteConfirmation(true)).Deferred().DataSource(datasource => 
       datasource 
        .Ajax() 
        .ServerOperation(false)).Deferred(true)) 


    <script> 
     function onChange(arg) { 
      alert(arg); 
      var selected = $.map(this.select(), function (item) { 
       return $(item).text(); 
      }); 

      kendoConsole.log("Selected: " + selected.length + " item(s), [" + selected.join(", ") + "]"); 
     } 
    </script> 

</div> 

私は今、私が唯一のブール値を渡し、行全体を渡したいと思います:

c.Bound(m => m.IsDisplayedInApp).Title("Is displayed in app").Width(80) 
        .ClientTemplate("<input type='checkbox' #= IsDisplayedInApp ? checked='checked' :'' # value='#=IsDisplayedInApp#' onClick='onChange(#=IsDisplayedInApp#)'/>"); 

誰もが、私はここに行を渡すことができる方法を知っています:

onClick='onChange(#=IsDisplayedInApp#) 

おかげ

答えて

0

このお試しください:

function onClick(chk) { 
    var grid = $('[name="EvaluationFormGrid"]').data("kendoGrid"); 

    // Get the row 
    grid.dataItem($(chk).closest("tr")); 
}; 

私は剣道のMVCには慣れていないので、.Name()が何を生成するのかはわかりませんが、関数の最初の行では、格子widgtetインスタンスをgrid varに取得する必要があります。

関連する問題