我有一个kendo窗口,他的数据加载了一个ajax调用。此kendo窗口的作用类似于窗口小部件编辑器,允许用户更改或操作数据以呈现不同的图表等。一旦用户配置了所有选项,他们就希望在页面上显示之前预览其图表/图表。 我已成功构建模型窗口并使用一个输入(预览)按钮加载初始数据,但现在我不知道如何在预览按钮单击的模型窗口内加载局部视图。我不知道这种方法是否正确,但我非常需要局部视图,因为我必须构建将传递给此局部视图以呈现图表/图形的模型。
$('.btnedit').click(function () {
var pwrid = $(this)[0].id;
$.ajax({
url: '/Home/EditWidget/' + '?id=' + pwrid,
type: 'GET',
accepts: 'text/html',
context: self,
success: self.editWidgetWindowCallBack,
error: function () { alert('Oops! Something went wrong'); },
complete: function(){ }
});
});
editWidgetWindowCallBack: function (html, textStatus, jqXHR) {
var model = $('#EditWidgetModelWindow').data('kendoWindow');
model.content(html);
model.center();
model.open();
}
EditWidgetModelWindow是我的剑道模型窗口
以下是我的行动方法
public ActionResult EditWidget(string id)
{
var widgetViewModel = // view model construction here.
return PartialView("Widgets/_EditWidget", widgetViewModel);
}
这是我的剑道模型窗口在其中加载编辑器局部视图的方式,现在我想在按钮单击时在该局部视图中加载另一个局部视图。 例如如果我的部分视图名称是_Chart且模型名称是ChartModel,我如何在按钮单击(按需)上从父部分视图调用此部分视图,并在Kendo模型窗口中将其呈现在现有部分视图内。
答案 0 :(得分:2)
我使用这种方法将html加载到kendo窗口中:
PartialViewResult
load
方法从第1点你的MVC代码就是这个
public ActionResult EditWidget(string id)
{
var widgetViewModel = // view model construction here.
return PartialView("Widgets/_EditWidget", widgetViewModel);
}
您定义了一个包含kendo窗口的html标记:
@(Html.Kendo().Window()
.Name("wndWindow")
.Content(@<text>
<div id="wndContent">
</div>
</text>)
) )
在你的脚本中使用jQuery来检索html:
$('.btnedit').click(function () {
var pwrid = $(this)[0].id;
$('#wndContent').load('/Home/EditWidget/', {id: prwid}, function (response, status, xhr) {
if (status == "error"){
try{
var msge = $.parseJSON(response);
// get the server error
} catch(e){
alert("Error parsing server response");
}
}else{
$("#wndWindow").data("kendoWindow").open().center();
});