Kendo UI窗口 - 阻止加载以前的内容

时间:2014-03-25 14:04:51

标签: asp.net-mvc model-view-controller kendo-ui kendo-window

我在我的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();

但是当我试图关闭它时,对象似乎被破坏了。

2 个答案:

答案 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>

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

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