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

evi*_*lom 6 model-view-controller asp.net-mvc 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)
)
Run Code Online (Sandbox Code Playgroud)



这就是我使用javaScript调用窗口的方式,其中_url是动态的

$('#window')
   .data("kendoWindow")
   .title("Add new category")
   .refresh({
       url: _url
   })
   .center()
   .open();
Run Code Online (Sandbox Code Playgroud)


我的问题是,每当我第二次打开窗口时,它仍会显示先前的内容,直到它完成加载当前内容.

我试图先使用以下内容隐藏内容:

$('#window')
     .kendoWindow({
         visible: false
     })
     .data("kendoWindow")
     .title("Add new category")
     .refresh({
         url: _url
     })
     .center()
     .open();
Run Code Online (Sandbox Code Playgroud)

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

And*_*i V 14

用这个:

$('#window')
   .data("kendoWindow")
   .title("Add new category")
   .content("") //this little thing does magic 
   .refresh({
      url: _url
   })
   .center()
   .open();
Run Code Online (Sandbox Code Playgroud)

不过我建议你重新安排你的电话:

 $('#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
   })
Run Code Online (Sandbox Code Playgroud)

使用第二个配置并提供有效的加载图像,用户将看到您的窗口并被告知正在加载内容.这非常有用(更不用说用户友好了),因为Kendo窗口在您使用该refresh函数时发出AJAX请求.

或者,您可以在窗口事件上添加close事件并content("")在处理程序内设置.