1

我可以在剑道网格中使用外键列。使用内联编辑方法,“编辑”操作工作正常。

但是,当添加新记录时,一切都很好。外键列允许我选择值。但是单击更新按钮,外键列值为空,因此在我的情况下无法更新数据库。

任何建议如何解决这个问题。

4

1 回答 1

0

我有同样的问题,剑道 UI 还没有解决问题(15/08/2014)。我解决了在网格上添加客户端事件:

@(Html.Kendo().Grid<SPDProject.Models.DTO.ProyectoDTO>()
.Name("GridProyectos")
.Columns(columns =>
{
    columns.Bound(r => r.Id).Visible(false);
    columns.Bound(r => r.Nombre).Width(150);
    columns.Bound(r => r.Alias).Width(150);
    columns.ForeignKey(r => r.IdCliente, (System.Collections.IEnumerable)ViewData["IdCliente_Data"], "Value", "Text");
    columns.ForeignKey(r => r.IdTipoProyecto, (System.Collections.IEnumerable)ViewData["IdTipoProyecto_Data"], "Value", "Text");
    columns.Command(command => { command.Edit(); command.Destroy(); }).Width(172);
})
.DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(10)
        .Events(events => events.Error("error_handler"))
        .Create(create => create.Action("CreateProyecto", "Admin"))
        .Destroy(destroy => destroy.Action("DestroyProyecto", "Admin"))
        .Model(model => model.Id(r => r.Id))
        .Read(read => read.Action("ReadProyecto", "Admin"))
        .Update(update => update.Action("UpdateProyecto", "Admin")))
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable(pageable => pageable.Refresh(true))
.Reorderable(reorderable => reorderable.Columns(true))
.Events(events => events.Save("onSave"))
.Resizable(resizable => resizable.Columns(true))
.Scrollable(scrollable => scrollable.Height(250))
.Selectable(selectable => selectable.Mode(GridSelectionMode.Multiple).Type(GridSelectionType.Row))
.Sortable(sortable => sortable.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn))
.ToolBar(toolBar => toolBar.Create()))



<script type="text/javascript">
function onSave(e) {
    //set the value to the model
    e.model.set('IdCliente', $('#IdCliente').val());
    e.model.set('IdTipoProyecto', $('#IdTipoProyecto').val());
}

我希望这对某人有所帮助。

问候,

DreamSys 的毛罗

于 2014-08-15T18:15:02.817 回答