我在我的MVC项目中使用Kendo Window。
这是我从View
@(Html.Kendo().Window()
.Name("window")
.Content("loading page..")
.Iframe(true)
.Draggable()
.Visible(false)
.Height(200)
.Width(400)
.Modal(true)
)
这就是我使用javaScript调用窗口的方法,其中_url是动态的
$('#window')
.data("kendoWindow")
.title("Add new category")
.refresh({
url: _url
})
.center()
.open();
我的问题是,每当我第二次打开窗口时,它仍会显示先前的内容,直到它完成加载当前内容。
我试图先使用以下内容隐藏内容:
$('#window')
.kendoWindow({
visible: false
})
.data("kendoWindow")
.title("Add new category")
.refresh({
url: _url
})
.center()
.open();
但是当我试图关闭它时,对象似乎被破坏了。
答案 0 :(得分:13)
使用此:
$('#window')
.data("kendoWindow")
.title("Add new category")
.content("") //this little thing does magic
.refresh({
url: _url
})
.center()
.open();
但我建议您重拨电话:
$('#window')
.data("kendoWindow")
.title("Add new category")
//.content("") //this little thing does magic
.content("<img src='ajax-loader.gif' alt='Loading...'/>")
.center()
.open();
.refresh({
url: _url
})
使用第二个配置并提供有效的加载图像,用户将看到您的窗口并被告知正在加载内容。这非常有用(更不用说用户友好了),因为当您使用refresh
函数时,Kendo窗口会发出AJAX请求。
或者,您可以在窗口close
事件上添加事件,并在处理程序中设置content("")
。
答案 1 :(得分:0)
您可能还想添加
.Events(e =>
{
e.Refresh("onRefresh");
})
<script>
function onRefresh() {
this.center();
}
<script>
在内容加载后保持窗口居中,因为它是异步加载的。
(如果您的内容高度可变)