2013-12-17 61 views
0

我有一個鏈接,使用kendoWindow打開一個彈出窗口。每當我關閉彈出窗口並重新打開(從另一個鏈接),第一個的值不會清除。僅供參考,此劍道彈出窗口可重複使用。劍道窗口關閉沒有正確清除?

例如: 我有2個鏈接。鏈接A和鏈接B.

該鏈接將使用參數調用控制器的ActionResult。

鏈路A會產生文本=「AAAAAAAAAAAAAA」 同時鏈路B會產生文本=「BBBBBBBBBBB」

//In controller: 
public ActionResult Caller(string param) 
{ 
    ViewModel viewModel = new ViewModel(); //This is a class that store a string. 
    if(param == "A") 
    { 
     viewModel.Result = "AAAAAAAAAAAAAA"; 
    } 
    else 
    { 
     viewModel.Result = "BBBBBBBBBBB"; 
    } 
    return View(viewModel); 
} 

所以流動是: 1.單擊鏈接答:這將打開彈出值= AAAAAAAAAAAAAA。 2.關閉彈出窗口。 3.從鏈接B重新打開彈出窗口。有一段時間,它將保持AAAAAAAAAAAAAA,然後(可能需要約2秒),它將更改爲BBBBBBBBBBB。

如果處於緩慢的不良連接中,則需要將AAAAAAAAAAAAAA更改爲BBBBBBBBBBB的時間。

我的問題是: 爲什麼彈出不會以空白彈出(它仍然保存佈局中的舊值)?

由於提前, 維拉

回答

2

你自己說的,「這劍道彈出窗口被重複使用。」關閉彈出窗口不會從DOM中刪除。它只是被隱藏起來。所以,當它再次打開時,它的內容並沒有從以前的改變。你必須自己清除它。內容更新需要一段時間的原因是因爲您必須等待來自服務器的往返請求/響應。

+0

是的,但它不應該保留舊內容,我認爲。因爲這從來沒有發生過。 – user2523119

+0

我在這裏發現了同樣的問題。 :) http://stackoverflow.com/questions/19171552/kendoui-window-flashes-old-content – user2523119

0

btw ... KendoPopup窗口重複使用不應該意味着它應該保留舊的內容。

這應該表示他正在使用相同的Window控件,即他的窗體或html上沒有2個窗口控件。

對於解決方案,他應該使用

1)這樣

win_deactivate() 
{ 
    this.destroy(); 
} 

使窗口從DOM每個窗口關閉時刪除停用事件。

或者

2)定義2個窗口控件和顯示/隱藏其中之一。

+0

同意你。它從來沒有發生過。但最近它確實如此。 – user2523119

+0

順便說一句,我在這裏找到了同樣的問題。 :) http://stackoverflow.com/questions/19171552/kendoui-window-flashes-old-content 感謝您的答覆:) – user2523119

5

佈雷特的解釋是正確的。有些情況下,您只需要再次顯示相同的內容,因此保留內容就是「融合」行爲。如果Kendo窗口在每次關閉時都將其內容全部刪除,則每當您想再次顯示內容時,您都必須重新填充內容。這比讓用戶明確地清空內容時效率更低,因爲他知道他不再需要它了。

在你的情況,你可以簡單地使用接近事件清空窗口(demo):

$("#myWindow").kendoWindow({ 
    width: "300px", 
    close: function (e) { 
     $(this.element).empty(); 
    } 
}); 

另一種方法是摧毀該窗口並創建一個新的。

+0

感謝您的答覆。我也在這裏得到了同樣的一個,由其他人發佈。 :) 我在這裏發現了同樣的問題。 :) http://stackoverflow.com/questions/19171552/kendoui-window-flashes-old-content 是的,所以它的關閉。再次感謝:) – user2523119

+0

謝謝拉爾斯! – nav