条件付きコマンドボタンにクライアントテンプレートを使用する具体的な例を次に示します。
const string ShowUpdateButton = "#if (IsNetReversal == false) {#<a class='k-button k-button-icontext k-grid-edit' href='\\#'><span class='k-icon k-edit'></span>Update</a>#}#";
const string ShowReverseButton = "#if (IsNetReversal == false) {#<a class='k-button k-button-icontext k-grid-reverse' href='/JournalDetail/Reverse/#: ID #' ><span class='k-icon k-reverse'></span>Reverse</a>#}#";
const string ShowDeleteButton = "#if (IsAdjustment == true) {#<a class='k-button k-button-icontext k-grid-delete' href='\\#'><span class='k-icon k-delete'></span>Delete</a>#}#";
テンプレートはインラインで実行できますが、定数を宣言してからstring.formatを使用してそれらを連結すると、(特に複数のボタンの場合)簡単になります。
col.Template(o => o).ClientTemplate(string.Format("{0}{1}{2}", ShowUpdateButton, ShowDeleteButton, ShowReverseButton));
利点は、ポップアップエディターで機能するのに対し、jqueryハックは、ユーザーが編集をキャンセルしたときに条件付きステータスを無視することです。ポップアップエディタからキャンセルすると、ビューモデルまたはKendoがグリッド行を保存する場所からグリッド行が復元され、jquery/javascriptハックの前のボタン状態になります。上記の方法では、クライアントテンプレートのHTML出力をコピーしたため、標準コマンドも自動配線されます。
欠点は、剣道がコマンドボタンのパターンを変更すると、クライアントテンプレートが失敗する可能性があることです。私はこれ以外のいくつかの方法を疲れさせました、そしてこの方法の欠点は他の方法より良いようです。
剣道フォーラムに関する注意:この投稿の日付の時点では、サポートにお金を払っていない人がフォーラムに投稿することを許可していないようです。代わりに、ここに質問を投稿することをお勧めします。彼らはスタックオーバーフローを監視しており、私の経験では、ここでより迅速に質問に答えているようです。