Kendo-UI MVC错误将事件附加到网格

时间:2016-08-31 21:00:24

标签: kendo-ui asp.net-mvc-5

在Asp.Net MVC Razor视图中,我试图在我的Kendo网格上捕获错误事件,但它找不到我在网格下面定义的函数'onError',我看过几个这样的例子工作,但无法让它在我的应用程序中工作。

<div>
<div class="row">
    <div class="col-xs-12">
        @(Html.Kendo().Grid<OMG.StatisticsTool.Presentation.Web.Models.ManualStats.ManualStatsViewModel>()
        .Name("manualStatsGrid")
        .Columns(columns =>
        {
            columns.Bound(stat => stat.Statistic).Width(250);
            columns.Bound(stat => stat.Description);
            columns.Bound(stat => stat.Instructions).Width(250);
            columns.Command(commands =>
            {
                commands.Edit();
                commands.Destroy();
            }).Title("Commands").Width(200);
        })
        .ToolBar(toolbar => toolbar.Create())
        .Editable(editable => editable.Mode(GridEditMode.InLine))
        .DataSource(dataSource =>
            dataSource.Ajax()
                .Events(events => events.Error("onError"))
                .Model(model =>
                {
                    model.Id(p => p.Statistic);
                    model.Field(stat => stat.Description).Editable(false);
                })
                .Create(create => create.Action("Index_Create", "ManualStats"))
                .Read(read => read.Action("Index_Read", "ManualStats"))
                .Update(update => update.Action("Index_Update", "ManualStats"))
                .Destroy(destroy => destroy.Action("Index_Destroy", "ManualStats"))
        )
        .Sortable()
        .Scrollable()
        .Filterable(ftb => ftb.Mode(GridFilterMode.Row))
        )
    </div>
</div>        

<div class="row">
    <div class="col-xs-4 col-md-1">
        <button class="btn btn-primary" type="submit" id="save">Save</button>
    </div>
    <div class="col-xs-4 col-md-1">
        <button class="btn btn-primary" id="cancel">Cancel</button>
    </div>
</div>        

<script type="text/javascript">
    function onError() {
        console.log('had error');
    }
</script>

1 个答案:

答案 0 :(得分:1)

Grid初始化语句包含在document.ready处理程序中,但如果Grid通过Ajax从局部视图加载,则会立即初始化它。如果在网格之后定义了onError函数,则在网格初始化期间其引用可能不可用。尝试在Grid之前移动函数定义。