2

ASP.NET MVC ラッパーを使用した剣道グリッドがあり、複数の列 (列 1 と列 2 など) があります。グリッドは InCell 編集モードに設定されています。列 1、2 は、特定の行の互いの値に基づいて編集できる (または編集できないようにする) 必要があります。

たとえば、列 1 の値が true の場合、列 2 を編集できます。列 2 の値が false の場合、列 2 は編集できません。

何か案は?

同様の例を見つけましたが、クライアント側の拡張機能を使用しています。

グリッドを編集するとき、行ごとに特定のフィールドを無効にするにはどうすればよいですか?

ASP.Net MVC ラッパーを使用してそれを行う同様の方法はありますか?

4

1 に答える 1

3

同様の問題に遭遇したところ、次の解決策が見つかりました。正しい方法ではないかもしれませんが、行が存在するときにフィールドを無効にし、新しいときにフィールドを有効にするのに役立つようです。このロジックは、必要なロジックと交換できる必要があります。

Kendo MVC バインディングで。「disableOnEdit」は、セルが編集モードになったときに呼び出す Javascript 関数の名前です。

@(Html.Kendo().Grid<yourModel>()
  .Name("grid")
...
  .Events(events => events.Edit("disableOnEdit"))
...

JavaScript で:

function disableOnEdit(e) {
    if (e.model.isNew()) {
        // Leave it editable if the row is new.
    } else {
        // Disable the editor for Element in this row if the row already exists.
        var select = e.container.find('input[name=Element]').data('kendoDropDownList');
        select.enable(false);
    }
}

このアプローチはKendo Grid Edit Docsから借用したものです。

さまざまな条件について言及されている他の回答を参照してください。

これを組み合わせてくれた Chris Finlayson に感謝します。

于 2014-02-24T16:35:26.367 に答える