我有一个带有可编辑记录的Kendo Grid:
当用户单击编辑按钮时,将打开一个Kendo窗口,其中包含用于编辑记录的表单 .
我通过从控制器方法填充Kendo窗口来实现这一点,该方法通过webservice: <- this is what I want to avoid 获取所选记录的数据 . 相反,我希望从表中直接获取数据并将其放入Kendo窗口内的输入字段中,而无需任何其他处理或html调用 . 数据已经在桌面上,我只是不知道如何将它发送到Kendo Window输入 .
这是一些代码:
单击编辑按钮后调用javascript函数:
function openEdit() {
var window = $("#editWindow").getKendoWindow();
window.refresh({
url: '@Url.Action("_EditForm", "Controller")'
});
window.center().open();
}
该视图包含部分视图调用:
@Html.Partial("_EditWindow")
被调用的局部视图包含Kendo窗口:
@(Html.Kendo().Window()
.Name("editWindow")
.Modal(true)
.Events(e => e.Open("drawWindow").Close("refresh").Refresh("hideLoading"))
.Iframe(true)
.Visible(false)
.Title("Edit Record")
)
如何将表格中选定行的数据传递给Kendo窗口?
编辑
我知道如何从javascript中获取所选记录的值:
var grid = $("#grid").data("kendoGrid");
var selectedItem = grid.dataItem(grid.select());
我只是不知道如何将它们传递到Kendo Window输入 .
3 回答
我找到了解决问题的方法 . 我现在将所选模型从视图发送到控制器 . 我使用梦幻般的
JSON.stringify
来实现它 .您可以根据需要定义局部视图,并在编辑按钮click.i.e上的kendow窗口上渲染
您可以使用这两种方法来传递Kendo() . Grid()的选定行数据:
Method I:
Method II:
View:
Controller:
Note: 如果无法呈现从Controller调用的View,请使用window.location.href而不是$ .ajax,使用如下的javascript函数