我有一個ASP.NET 4.0網站。在該站點中,UpdatePanel中有一個treeview控件。ASP.NET 4.0,ScriptManager和HistoryPoints
請記住 - 當用戶第一次訪問該頁面時,沒有發生回發(更多在這一分鐘內)。
當用戶點擊樹中的節點時,它會觸發回發。當用戶在樹上移動時,我可以設置歷史積分 - 這不是什麼大問題。歷史點是所選節點的ID。 (我想用這個來驅動頁面上的其他信息)
有兩種行爲,我看到了,我很爲難至於如何糾正這些:
- 首先,歷史點似乎總是指向當前項目。如果我從項目A開始,然後單擊項目B,當我點擊後退按鈕時,我在項目B處結束幾次點擊(就好像歷史點都設置爲相同的值)。我認爲歷史應該是用戶點擊的節點的運行列表......但在這種情況下,似乎列表始終是包含當前ID的歷史點的集合。 (如果有人知道如何在腳本管理器中公開歷史點的集合,我很想聽聽它是如何做到的)
- 其次,還有更令人頭疼的是,當樹最初加載時,沒有回傳。有沒有辦法設置沒有Ajax回發的歷史點? (我想有一種方法來保存樹的默認狀態,但現在從根目錄轉到項目A,然後點擊返回會將用戶轉到我打開頁面之前的任何頁面)
有沒有其他人注意到ScriptManager的歷史點怪異的行爲?
我也想過替代方案 - 比如viewstate,隱藏字段,cookie,會話變量......但是我沒有碰到任何我嘗試過的解決方案。有沒有辦法讓後退按鈕工作沒有的歷史點? (我認爲不存在)