9

グリッドを編集しているときに、グリッドの外側をクリックすると、編集していたボックスがまだ編集可能です。編集されたセルがフォーカスを失ったときに編集を「完了する」ようにするにはどうすればよいですか?

4

3 に答える 3

15

次のコードは、現在の編集を保存します。

Slick.GlobalEditorLock.commitCurrentEdit();

これを、保存をトリガーする必要があると思われるイベント ハンドラー内に配置する必要があります。たとえば、サンプルのテキスト エディター プラグインを使用している場合editor-text、セルを編集しているときに作成される入力フィールドに CSS クラスが追加されるので、次のように動作するはずです。

$('#myGrid').on('blur', 'input.editor-text', function() {
    Slick.GlobalEditorLock.commitCurrentEdit();
});
于 2013-03-20T01:09:21.663 に答える
5

残念ながら、おそらくイベント処理の違いが原因で、Grame のバージョンでは chrome でのキーボード ナビゲーションが機能しなくなります。これを修正するために、新しくフォーカスされた要素が (キーボード ナビゲーションの結果として) グリッド内の別のエディター要素ではない場合にのみ、編集をコミットする別のチェックを追加しました。

            $('#grid').on('blur.editorFocusLost', 'input.editor-text', function() {
                window.setTimeout(function() {
                    var focusedEditor = $("#grid :focus");
                    if (focusedEditor.length == 0 && Slick.GlobalEditorLock.isActive()) {
                        Slick.GlobalEditorLock.commitCurrentEdit();
                    }
                });
            });

これは、Firefox、Chrome、および IE の現在のバージョンで動作するようです。

于 2014-08-14T13:50:29.373 に答える