当使用新选项刷新时,iframe模式下的kendo弹出窗口不会获取新的URL

时间:2013-02-19 16:41:14

标签: kendo-ui

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

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

What is the proper way to load new content into a kendo window?

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

不同之处在于,我正在使用带有网址的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 方法正在将选项传递到kendo窗口,因为窗口的标题栏正确显示了 aDifferentTitle 。但是,查看网络流量监视器时,服务器请求的网址为foo.htm?id=1,但应为foo.htm?id=2

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

3 个答案:

答案 0 :(得分:1)

您正在寻找的答案是

kwindow.options.content.url = url;

然后刷新图标/方法将适用于新网址

答案 1 :(得分:0)

要从不同的URL刷新,您需要通过选项对象将其传递给刷新方法(您不需要使用setOptions)。以下是documentation

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

windowObject.refresh({
    url: "/feedbackForm"        
});

答案 2 :(得分:0)

我使用了以下内容,它似乎适用于MVC项目:

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

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

    window.open();