剣道グリッドのイベントを使用してedit
、いくつかの非表示の列を表示しています。その後、イベントでそれらを再び非表示にしますsave
。
私が抱えている問題は、編集モードをキャンセルするイベントがないように見えるため、ユーザーが[キャンセル]をクリックすると列がめちゃくちゃになることです。
キャンセルするための文書化されていないイベントがありますか、それとも回避策を見つける必要がありますか?
剣道グリッドのイベントを使用してedit
、いくつかの非表示の列を表示しています。その後、イベントでそれらを再び非表示にしますsave
。
私が抱えている問題は、編集モードをキャンセルするイベントがないように見えるため、ユーザーが[キャンセル]をクリックすると列がめちゃくちゃになることです。
キャンセルするための文書化されていないイベントがありますか、それとも回避策を見つける必要がありますか?
基本的に「キャンセル」イベントはありませんが、グリッドの編集イベントに「キャンセル」ボタンのクリックイベントを付けることができます。以下の例を確認してください。
function onEdit(e) {
e.container.find(".k-grid-cancel").bind("click", function () {
//your code here
})
}
編集:グリッドには、上記のソリューションの代わりに使用できる「キャンセル」イベントがあります。
同じ質問に対する答えを探していましたが、これはうまくいきませんでした。グリッド内の新規および編集されたレコードがコントローラー内で検証され、エラー メッセージが ModelState の ModelError コレクションに追加されるというシナリオがありました。グリッドのデータソース エラー イベントをフックして、アラート内にエラー メッセージを表示し、変更をリセットする以下を追加しました。
$('#MyGrid').data("kendoGrid").cancelChanges();
ページングを使用していて、ユーザーが表示している現在のページが保持されるため、これは私にとっては素晴らしい解決策でした。
これを試して、
$("#grid").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
],
dataBound: function(e) {
$("#grid").on("mousedown", ".k-grid-cancel-changes", function (e) {
//custom logic
});
}
});
dataBound で、剣道グリッド ツールバーのキャンセル ボタンのクリック イベントを配線します。それが動作します。