剣道グリッドでedit
イベントを使用して、いくつかの非表示の列を表示しています。その後、save
イベントで再び非表示にします。
私が抱えている問題は、編集モードをキャンセルするイベントがないように見えるので、ユーザーがキャンセルをクリックすると、列がめちゃくちゃになることです。
キャンセルのための文書化されていないイベントはありますか、または回避策を見つける必要がありますか?
基本的に、そのような「キャンセル」イベントはありませんが、グリッドの еdit イベントの「キャンセル」ボタンにクリックイベントをアタッチできます。以下の例を確認してください:
function onEdit(e) {
e.container.find(".k-grid-cancel").bind("click", function () {
//your code here
})
}
編集:ある時点からグリッドには「キャンセル」イベントがあります上記のソリューションの代わりに使用できます:
同じ質問への回答を探していましたが、うまくいきませんでした。グリッド内の新規および編集済みレコードがコントローラー内で検証され、エラーメッセージがModelStateのModelErrorコレクションに追加されるシナリオがありました。グリッドのデータソースエラーイベントをフックしてアラート内にエラーメッセージを表示し、次のコードを追加して変更をリセットしました。
$('#MyGrid').data("kendoGrid").cancelChanges();
私はページングを使用していて、ユーザーが表示している現在のページが保持されているので、それは私にとって素晴らしい解決策でした。
受け入れられた回答が述べていることに反する 実際には、編集イベントと同様に イベントをキャンセル があります。
$("#grid").kendoGrid({
...
edit: function(e) {
alert("edit")
},
cancel: function(e) {
alert("cancel");
},
...
});
これを試して、
$("#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で、剣道グリッドのツールバーのキャンセルボタンのワイヤクリックイベント。それが動作します。