Kendo UI MVC网格行选择

时间:2013-08-20 13:36:29

标签: kendo-ui kendo-grid telerik-mvc

我需要执行历史推送状态到某些Action on Grid点击...

我查看了API,我认为事件发生了改变它的正确位置......

所以,那就是我想要放在那里的代码

"window.History.pushState(null, null," + "'" + Url.Action("Edit", "MyController") + "/' + Id);"

我在类似的JS Grid上使用它并且工作正常,但我不知道如何使用Kendo UI MVC Wrapper ... 我打算直接在Grid定义上使用它,所以我不必创建任何JS方法......类似的东西:

.Events(events => events.Change(x => "window.History.pushState..."))

这可能吗?如何获取ID并在那里声明Url.Action?

由于

1 个答案:

答案 0 :(得分:2)

docs for the "change" event有一个如何获取所选行的数据项的示例。

MVC助手期望将JS函数的字符串名称传递给events.Change(),但我认为你也可以在那里定义一个函数。

类似于:

@{
    var url = Url.Action("Edit", "MyController");
}

...

.Events(events => events.Change(x => @"function (changeEvent) {
    var selectedRows = this.select();
    var dataItem;
    var numSelectedRows = selectedRows.length;
    for (var i = 0; i < numSelectedRows ; i++) {
        dataItem = this.dataItem(selectedRows[i]);
        selectedDataItems.push(dataItem);
        window.History.pushState(null, null, """ + url + @"/"" + dataItem.Id);
    }
}"))

我没有在我面前打开一个Kendo MVC项目来验证语法,但这应该非常接近,或者至少让你指向正确的方向。