Kendo UI难以从网格模型中获得错误

时间:2013-12-30 20:22:39

标签: c# jquery asp.net-mvc kendo-ui

在Kendo UI网格中,我有一个InLine编辑,我正在验证服务器端,如果存在错误,我将在json中返回它们。我已经走到了这一步,但我正在努力将这些错误从对象中拉出来处理它们。我将从问题开始,然后向后工作,输入下面的代码。

我从Edit事件中抓取模型。填充模型,我可以在控制台中看到错误,但下面的my errors变量值为null。

function onEdit(e) {
    var errors = e.model.Errors;
    console.log(errors);
    console.log(e.model);
};

这是我的cshtml网格设置,我在其中配置了Edit事件和可编辑代码。

@(Html.Kendo().Grid<RosterGridViewModel>()
    .Name(gridId)
    .HtmlAttributes(new {style="height: 400px;"})
    .Columns(columns => {
        columns.Bound(p => p.ApprovalStatus);
        columns.Bound(p => p.LastName);
        columns.Bound(p => p.FirstName);
        columns.Bound(p => p.Birthdate).Format("{0:M/dd/yyyy}");
        columns.Bound(p => p.Uic).Title("UIC");
        columns.Bound(p => p.DateAdded).Format("{0:M/dd/yyyy}");
        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(190);
    })
    .Sortable()
    .Scrollable()
    .Editable(editable => editable.Mode(GridEditMode.InLine))
    .Selectable(selectable => selectable.Mode(GridSelectionMode.Multiple))
    .Events(events => events.DataBound("onDataBound").Edit("onEdit"))
    .DataSource(dataSource => dataSource
        .Ajax()
        .Batch(true)
        .Read(o => o.Action(AppRoute.RosterGridRead.ToMethod(), AppRoute.RosterGridRead.ToController()))
        .Update(o => o.Action(AppRoute.RosterEdit.ToMethod(), AppRoute.RosterEdit.ToController()))
        .Destroy(o => o.Action(AppRoute.RosterGridDestroy.ToMethod(), AppRoute.RosterGridDestroy.ToController()))
        .Group(groups => groups.Add(p => p.School))
        .Model(model => 
            {
                model.Id(p => p.Id);
                model.Field(p => p.Id).Editable(false);
                model.Field(p => p.ApprovalStatus).Editable(false);
                model.Field(p => p.DateAdded).Editable(false);
            }
        )
    )
    .ToolBar(toolbar => toolbar.Custom().Text(ActionLabel.DeleteSelection.GetDescription()).HtmlAttributes(new { onclick = "deleteSelection(event)" }))
)

Below is an image of the model object.

1 个答案:

答案 0 :(得分:0)

您必须先将e.model.Errors对象转换为JSON,如下所示,然后您可以获取所需的任何属性/密钥。

e.model.Errors.toJSON().Message