2014-03-25 57 views
4

我在我的MVC项目上使用Kendo窗口。

这是我从视图Kendo UI窗口 - 防止加载以前的内容

@(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(); 

但对象似乎被毁坏了,当我尝试关闭它。

回答

12

使用此:

$('#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("")

0

你也可能要添加

.Events(e => 
{ 
    e.Refresh("onRefresh"); 
}) 

<script> 
    function onRefresh() { 
     this.center(); 
    } 
<script> 

保持内容后为中心的窗口,因为它是异步加载被加载。

(如果您的内容高度可变)