私は剣道スケジューラーを使用しており、サーバー検証を使用したいと考えています。サーバーが (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;
}