[FlexGrid for ASP.NET MVC] テンプレート列のセルでOnClientBeginningEditプロパティによるイベントキャンセルができない

文書番号 : 82171     文書種別 : 既知の問題     登録日 : 2017/05/29     最終更新日 : 2018/11/29
文書を印刷する
対象製品
ComponentOne for ASP.NET MVC
ステータス
修正済み
詳細
カスタムエディタとして設定したテンプレート列において、OnClientBeginningEditプロパティで実装したイベント内でキャンセル処理が有効にならず、編集をキャンセルすることができません。
回避方法
この問題は2018J v3(4.0.20183.176)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。

FlexGridコントロールの前に次のようなスクリプトを記載し、テンプレートの動作を上書することにより回避できます。

<script>
  // 回避策ここから
  var func = c1.mvc.grid._ItemTemplateProvider.prototype._applyCellEditTemplate;
  c1.mvc.grid._ItemTemplateProvider.prototype._applyCellEditTemplate = function (grid, args) {
    if (args.cancel) {
      return;
    }

    func.call(this, grid, args);
  };
  // 回避策ここまで
</script>

<script>
  function beginEdit(s, e) {   
    if (s.rows[e.row].dataItem['Active'] && s.rows[e.row].dataItem['ID'] > 5 && e.col == 1) {
      e.cancel = true;
    }
  }
</script>

@(Html.C1().FlexGrid() _
  ・・・
  OnClientBeginningEdit("beginEdit")
)