asp.net
2012-11-06 74 views 2 likes 
2

我試圖用盡可能少的步驟來描述它: 我有Page1.aspx有很多控件,以及其中的預覽和保存按鈕。我也有Page2.aspx這是預覽按鈕點擊的重定向目標。跨目標_blank頁面發佈葉子源頁面不起作用

由於我需要Page1中的所有控件選擇以在Page2上繪製預覽,因此重定向是通過設置Preview的PostBackUrl完成的。 我還必須在新選項卡或窗口中顯示預覽,所以我使用onClientClick="aspnetForm.target='_blank'"來預覽按鈕定義。

保存按鈕,點擊回調,之後將數據存儲到數據庫中,都重定向到一些Page0.aspx的報告(初步名單 - 該代碼的主題)

預覽按鈕工作正常 - 預覽渲染在新選項卡,但是當我轉到舊選項卡並單擊保存時,我從調試器中看到,首先Page2.aspx(?)和其次加載Page1.aspx。然後所有的數據都存儲在數據庫中,但儘管Page0重定向執行Page1.aspx保持加載在瀏覽器中。

我不知道背後有什麼過程。誰知道誰能給我一個見解?或者如果你認爲我的方法不可能實現,請給出一些想法,如何做到這一點?

如果它很重要,則Page1上的所有內容都位於更新面板中。

非常感謝您的回覆

回答

2

在ASP.NET基本上有中,你永遠不會從一個頁面發送表單數據到另一個零(0)的情況。儘管您試圖完成的是模糊的,但您可以考慮以下某些方面:

  • 將獨特操作/系統分離到單個頁面。如果您有類似用戶配置文件的內容,則不需要三個不同的aspx頁面;只需爲用戶或管理員使用單個頁面即可管理該數據/功能。回傳事件是你的朋友。
  • 瞭解ViewState和傳統表單數據的區別。我在猜測,如果你試圖將表單數據從一個頁面發佈到另一個頁面,你可能不瞭解ViewState的要點。使用單個頁面來維護用戶當前正在使用的臨時數據對於ViewState來說非常有用。如果您希望數據出現在另一頁上,則需要將上一頁中的數據視爲最終數據,因此應將其保存到數據庫或其他介質中。

這些只是一些通用的指導原則,因爲沒有確切的答案來解決您的問題,而沒有像「您做錯了」這樣的泛型。我建議從不再嘗試將表單數據從一個aspx頁面發佈到另一個頁面。

+0

這種情況是:Page1是用於爲一個非常大的網絡系統創建報告模板 - 包含多行,包含多個下拉和輸入。預覽按鈕的作用是讓用戶獲取當前選擇的繪製報告(在新頁面中 - 已有功能的已寫入頁面),並且如果模板已經構建好,則將模板保存到數據庫(單擊保存) 。 此外,所有提到的控件實際上都是用戶控件的一部分,包含在幾個頁面中(Page1.aspx就是其中之一) –

+0

感謝您指出這個Asp.Net原則,從現在開始我會記住它,但在這裏我受限於現有的框架。 我不確定這是有建設性的,在預覽點擊,保存到數據庫的所有臨時值,並在第2頁上使用它們? (原則2你陳述) 最好的幫助將是洞察爲什麼兩個頁面加載在從舊選項卡的回發和選項卡搞砸了?如果能夠幫助解決這個問題,或者我可以進行更廣泛的重構。 再次感謝你 –

+0

是的,你完全正確。將需要的數據保存到第1頁上,如果需要預覽按鈕,則使用查詢字符串將數據發送到下一頁或像您提到的其他方式(保存到數據庫,然後將數據加載到其他頁面上)。 –

相關問題