2009-02-26 67 views
0

我正在使用jQuery來模擬彈出窗口,其中用戶將選擇一系列過濾器,我希望用它來在原始窗口中重新綁定ListView。使用jQuery實現複雜功能的彈出窗口

「popup」通過ajax請求打開,內容實際上是一個不同的aspx文件(呈現的輸出被注入到一個充當彈出窗口的div中)。

我在這個彈出窗口中有另一個ListView,它有分頁。

我的問題是,因爲彈出窗口實際上是在同一個頁面中的一個div內的html內容,所以當我嘗試分頁時,整個頁面回發並被替換爲具有過濾器的aspx。

我該如何解決這個問題? 我試圖使用更新面板來包含ListView,但它沒有工作。

+0

(讓我知道如果這不明確,我試圖描述情況盡我所能,英語不是我的主要語言) – juan 2009-02-26 17:36:38

回答

1

$(「div.yourthingie」)。hide();

將隱藏你想要顯示的部分:)不需要在運行中生成彈出窗口,而是將已經創建的一小部分隱藏起來,並在需要顯示時隱藏它,取消隱藏並添加所需的信息至。

希望它可以幫助

+0

希望我正確理解你作爲一個問題 – fmsf 2009-02-26 18:39:46

1

無論是擺脫了HTML的「殼」,只是產生<DIV>其內容,或使用IFRAME。

0

首先,我們來看看發生了什麼。當您提交原始頁面時,您正在進行「正常」請求/響應旅行以獲取代碼。在頁面上是一個JQuery AJAX位,它觸發基本上是模態對話框。期望的效果是用戶使用新頁面進行播放,直到他們已經計算出他們的過濾器並提交回來。問題是這個「模態頁面」在有人分頁時會丟失信息。

從理論上講,這個解決方案相當簡單。您必須在彈出的頁面中存儲「過濾器」,以便可以重新發送它們以及分頁信息。或者,您必須在用戶分頁時緩存結果集。

我會做什麼來解決這個問題是創建一個靜態頁面,有「過濾器」的地方和解決AJAX扭結分開從頁面發回到父頁面。一旦你有所有的AJAX位工作正常,我會把它連接到彈出的例程,並確保分頁仍然沒有問題。最後的問題是創建一個返回父頁面的JavaScript例程,並允許父頁面將其JQuery位發送回服務器。

我不確定這個公式的HTML DIV部分,我想你可以在沒有這個解決方案的情況下解決問題。實際上,我相信如果可以通過查詢字符串提交過濾器或者通過假表單提交到第二頁,則可以在不調用AJAX的情況下創建「模態彈出」頁面。查詢字符串是一個更容易的選項,但它暴露了一些信息。僞造表單提交併不是那麼困難,總的來說,但可能會出現問題。

我只是引發了一些想法,但我希望它刺激了你的一些東西。