1

编辑:我已经放弃了条件结构,只是每次都创建新鲜的窗口。这样可行。仍然想知道 refresh() 是否适用于 url。

我有一个类似于这个的条件结构:

将新内容加载到剑道窗口的正确方法是什么?

如果剑道窗口已经存在,请刷新()窗口而不是重新创建它。

不同之处在于,我使用的是带有 url 的 iframe。

问题:我在调用 refresh() 之前使用 setOptions 设置了不同的查询字符串,但是再次从服务器请求原始url。

   if (!kwindow) {
        kwindow =  $("#messagewindow").kendoWindow({ 
        iframe: true,
        width: "400px",
        height: "600px",               
        title: "original title", 
        content: "foo.htm?id=1",
        type: "GET"
    }).data("kendoWindow");    

  }else {

     kwindow.setOptions({
        iframe: true,
        type: "GET",
        title: aDifferentTitle,                    
        url : "foo.htm?id=2" 
     });
     kwindow.refresh(); 

  }
   kwindow.open();

我知道setOptions方法将选项传递给剑道窗口,因为窗口的标题栏正确显示aDifferentTitle。但是,查看网络流量监视器,从服务器请求的 urlfoo.htm?id=1应该是foo.htm?id=2.

我看不出我的代码有什么问题,如果有人能向我指出错误,我将不胜感激。

4

3 回答 3

1

您正在寻找的答案是

kwindow.options.content.url = url;

然后刷新图标/方法将适用于新的 url

于 2015-06-03T05:50:31.517 回答
0

我使用了以下内容,它似乎在 MVC 项目中工作:

    window.setOptions({
        title: "New Title"
     });

    window.refresh({
        url: "/ControllerName/Action"
    });

    window.open();
于 2013-09-25T11:33:17.587 回答
0

要从不同的 URL 刷新,您需要通过选项对象将其传递给refresh方法(您不需要使用 setOptions)。这是文档中的片段:

var windowObject = $("#window").data("kendoWindow");
windowObject.refresh("/feedbackForm");

windowObject.refresh({
    url: "/feedbackForm"        
});
于 2013-02-19T19:28:49.957 回答