Ich habe ein Kendo MVC Grid in einer Vorlage, die Neuordnung von Zeilen unterstützt. Ich kann die Zeilen erfolgreich ziehen und ablegen und das Ereignis abfangen, wenn dies passiert (siehe Handler unten), aber wenn ich nicht auch eine oder mehrere Zellen im Raster bearbeite, wird das Speichern-Ereignis nicht ausgelöst, wenn ich auf die Schaltfläche Aktualisieren klicke.Kendo MVC Grid Speichern Ereignis nicht ausgelöst
Die Drag-n-Drop-Handler das betroffene Modell (e) ‚schmutzig‘ Flag nicht gesetzt, aber das scheint nicht zu schneiden:
function onChangeEnumValueOrder(e) {
var uid = $(e.draggableEvent.currentTarget).data("uid");
var model = $("#TheGrid").data("kendoGrid").dataSource.getByUid(uid);
model.dirty = true;
}
Für Hinweise oder Tipps geschätzt würden.
[UPDATE (Grid-Definition)]
@(Html.Kendo().Grid<EnumItemViewModel>()
.Name("TheGrid")
.Columns(columns =>
{
columns.Bound(x => x.Id).Visible(false);
columns.Bound(x => x.Key).Visible(false);
columns.Bound(x => x.SortOrder).Width(10).Sortable(true);
columns.Bound(x => x.Value).Width(100);
columns.Command(command => command.Custom("Delete").Click("onDeleteEnumItem")).Width(100).Visible(true);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(x => x.Key);
model.Field(x => x.Id).DefaultValue(Guid.Empty);
model.Field(x => x.Value);
})
.Read(read => read.Action("GetEnumItems", "SiteManagement").Data("getFieldIdEnumItemGrid"))
.Create(create => create.Action("AddEnumItem", "SiteManagement"))
.Update(update => update.Action("UpdateEnumItem", "SiteManagement"))
.Destroy(destroy => destroy.Action("DeleteEnumItem", "SiteManagement"))
.Events(events => events.Error("onErrorGrid('EnumGrid')"))
)
.Editable(editable => editable.DisplayDeleteConfirmation(false).Mode(GridEditMode.InCell))
.ToolBar(toolbar => toolbar.Create())
.Events(events => events.SaveChanges("onSaveEnumItemGrid")) // <-- EVENT NOT FIREING
.Sortable(sort =>
{
sort.SortMode(GridSortMode.SingleColumn);
sort.AllowUnsort(true);
})
)
@(Html.Kendo().Sortable()
.For("#TheGrid")
.Filter("table > tbody > tr")
.Cursor("move")
.HintHandler("hintHandlerSortable")
.PlaceholderHandler("placeholderHandlerSortable")
.ContainerSelector("#TheGrid tbody")
.Events(events => events.Change("onChangeEnumValueOrder"))
Können Sie Ihre Rasterdefinition posten? –
Fertig. Danke, dass du dir die Zeit genommen hast! –
Entschuldigung für die Verzögerung. Es sieht nicht so aus, als würden Sie tatsächliche Werte für die Aktualisierung festlegen. Wahrscheinlich müssen Sie eine Eigenschaft wie 'SortOrder' auf den neuen Sortierwert setzen. –