1

私は剣道スケジューラーを使用しており、サーバー検証を使用したいと考えています。サーバーが (ModelState - ToDataSourceResult 拡張機能を介して) 検証エラーを返した場合、それらをポップアップで表示したいと考えています。エディターウィンドウが閉じないようにする方法に問題がありますか?

次のコードがあります (グリッド ポップアップ エディターとサーバー検証エラーに対して機能します)。

onError: function (args) {
    if (args.errors) {
        var scheduler = $("#scheduler").data("kendoScheduler");

        scheduler.one("dataBinding", function (e) {
            e.preventDefault(); // cancel grid rebind if error occurs - this prevents window to closing  

            /* some error handling */
        });
    } else {
        alertify.error("Unknown error occurred");
    }
}

バグのように見える次のコードを見つけました。これは、スケジューラーの「リフレッシュ」メソッドです。イベントが防止されなかった場合は、 trigger("dataBinding")の結果を確認し、_destroyEditableを呼び出す必要があると思います。

this.trigger("dataBinding");

if (!(e && e.action === "resize" && this.editable)) {
    this._destroyEditable();
}

編集:

グリッドのコードは次のとおりです。

 if (that.trigger("dataBinding", { action: e.action || "rebind", index: e.index, items: e.items })) {
    return;
}
4

2 に答える 2

0

同じ質問をテレリック フォーラムに投稿すると、次の内部ビルドに修正が追加されます。

http://www.kendoui.c​​om/forums/kendo-ui-complete-for-asp-net-mvc/scheduler/how-to-prevent-editor-from-closing-.aspx

于 2013-10-03T09:45:42.427 に答える
0

現在、Kendo UI スケジューラーはdataBindingイベントの防止をサポートしていません。実際のソース コードを次のように変更してみてください。

if (this.trigger("dataBinding")) {
   return;
}
于 2013-10-02T10:31:18.460 に答える