私はそれをこのように使用します-少なくともチェックボックスでは。[編集]ボタンを使用して列を次のように設定します。
columns.Command(command => {command.Edit().HtmlAttributes(new { id = "btnEdit_" + "${Id}" }); }).Width(100).Hidden(true);
そして、最初の列をクリックすると(ハイパーリンク付きの画像があります)、onclick関数を使用して、プログラムで[編集]ボタンをクリックし、チェックボックスをクリックしてから、[更新]ボタンをクリックします。おそらくもっと「古い学校」ですが、私自身、それを更新する場合と同じ順序に従っていることを知っているのが好きです。
オブジェクト( "this")を渡すので、表示されたときに行とチェックボックスを取得できます。新しいステータスは0または1です(ただし、このデモでは実際には必要ない、それを使用するコードがあるので、簡単にするために、その部分を関数から除外しています)、およびそのアイテムのID:
columns.Bound(p => p.IsActive).Title("Active").Width(100).ClientTemplate("# if (IsActive == true ) {# <a href=javascript:void(0) id=btnActive_${Id} onclick=changeCheckbox(this, '0', ${Id}) class='k-button k-button-icontext k-grid-update'><img style='border:1px solid black' id=imgActive src=../../Images/active_1.png /></a> #} else {# <a href=javascript:void(0) id=btnActive_${Id} onclick=changeCheckbox(this, '1', ${Id}) class='k-button k-button-icontext k-grid-update'><img style='border:1px solid black' id=imgActive src=../../Images/active_0.png /></a> #}#");
function changeCheckbox(obj, status, id) {
var parentTr = obj.parentNode.parentNode;
$('[id="btnEdit_' + id + '"]').click();
parentTr.childNodes[5].childNodes[0].setAttribute("id", "btnUpdate_" + id); // my Update button is in the 6th column over
parentTr.childNodes[0].childNodes[0].setAttribute("id", "chkbox_" + id);
$('[id=chkbox_' + id + ']').click().trigger("change");
$('[id=chkbox_' + id + ']').blur();
var btnUpdate = $('[id="btnUpdate_' + id + '"]');
$('[id="btnUpdate_' + id + '"]').click();
}
上記のコードは、もちろん、チェックボックスが最初の列にあることを前提としています。それ以外の場合は、childNodes[0]
そのchkbox setAttribute行の最初の行を、それが置かれている列から1を引いた値に調整します。これは、ゼロからカウントを開始するためです。