2009-11-16 27 views
1

我有一頁搜索結果,點擊一頁打開一個新窗口,他們在那裏編輯關於它的信息。完成後,他們必須再次點擊「搜索」才能刷新結果以確保其正確保存(刷新搜索結果並反映新狀態)。您可以基於asp.net中的單獨窗口執行操作嗎?

有什麼辦法可以觸發頁面自動刷新(即自動點擊搜索按鈕)基於彈出窗口關閉或通過其他方式?

+0

爲什麼你使用彈出來編輯項目?你不能使用數據視圖或類似的東西? – Ivo 2009-11-16 09:24:26

+0

感謝您的回覆,是的,它真的很討厭,但這是編輯討厭的遺留代碼的生活......沒有時間重寫它。就像在螢火蟲中,當船長拒絕爲船舶發動機購買更換部件時,儘管事實上它完全分崩離析......「只要它可以工作,或者你可以得到它的工作」:( – NibblyPig 2009-11-17 09:36:05

回答

1

我呼應的情緒要做到這一點,而不彈出窗口,但如果你真的需要...

我會做這個周圍的結果包裹的更新面板和一些JavaScript添加到您的保存按鈕彈出頁面。

在您彈出一頁,我猜你有一個按鈕來保存你的工作,是這樣的:

<asp:button id="btn_save" runat="server" OnClick="Save" Text="save" /> 

的代碼隱藏:

protected void Save(object sender, EventArgs e) 
{ 
    // save code ... 
    // bla bla 

    // Add this 
    ClientScript.RegisterStartupScript(this.GetType(), "save", "<script language='javascript'>updateResults();</script> 
} 

結果頁面加載這

<script language="javascript"> 
function updateResults() 
{ 
    __doPostBack('updatePanel_results',''); 
} 
</script> 

並將結果控制包裝在更新面板中(在本例中稱爲updatePanel_results)。在你的page_load中,你可能需要編寫代碼來調用你的refresh resutls方法。

+0

謝謝,這看起來像它可能工作;) – NibblyPig 2009-11-17 09:34:26

+0

不客氣。讓我知道你是否遇到麻煩。 – adrianos 2009-11-17 10:23:06

0

打開的窗口中看起來並不像理想的解決方案在這裏。

在新窗口中,您可以在javascript中訪問父窗口。您可以使用它在郵件窗口中觸發刷新/或其他功能。

0

有什麼辦法來觸發頁面 自動刷新(即 自動點擊搜索按鈕)的基礎上的彈出窗口關閉或 通過一些其他手段 ?

您可以爲OnUnload事件註冊JavaScript事件處理程序。但是,根據我的經驗,這不是可靠的(瀏覽器到瀏覽器的不一致性等)。

您是否考慮過使用Ajax將搜索結果保留在與原始窗口相同的頁面上?或者也許是一個小的Silverlight控件?

相關問題