2009-02-25 60 views
0

嘿,所有。我有一個列出一堆用戶帳戶的ASP.NET頁面。.NET:點擊後退按鈕弄亂我的事件處理程序

如果我點擊某個用戶,會觸發一個名爲LinkChosen的事件,該事件將打開該用戶的帳戶視圖頁面。

我也可以搜索縮小列表範圍的用戶。這個事件被稱爲btnSearch_click

如果我點擊一個用戶,LinkChosen()被調用,我被帶到一個新的頁面。如果我點擊後退按鈕,嘗試搜索,而不是點擊btnSearch_click(),它仍會觸發LinkChosen()事件,並將我帶回推回前查看的帳戶。 在點擊帳戶之前進行搜索就像它應該這樣做。

我正在使用C#和ASP.NET,並且此錯誤出現在IE中,但不是Firefox。

有沒有人有任何想法?

謝謝。

澄清編輯:「顯示單個帳戶」操作是超鏈接,而不是按鈕。 :)

回答

0

嗯...這聽起來太怪異是真的..

我檢查事件處理程序是如何勾搭上了(代碼前或代碼隱藏),如果代碼隱藏,你確定他們被正確綁定。

您是否嘗試清除瀏覽器緩存?可能是後退按鈕會讓你回到頁面的舊版本?

只是一個想法..你可以使用普通的老ASP:超鏈接或HREF =「」帶你到頁面,顯示一個單一的帳戶? IE瀏覽器有ShowAccount.aspx(或者你稱之爲的)帶一個查詢參數,告訴它顯示哪個帳戶? (而不是使用回發/ response.redirect)讓你訪問頁面?我發現直接在URL上提供資源可以使整體開發更容易。 (雖然這與您的特定錯誤無關)

+0

從我可以告訴他們似乎迷上了。特別是因爲他們的工作,因爲他們應該在所有情況下,但這一個,然後只在IE – Ace 2009-02-25 15:53:31

+0

另外,我已經使用超鏈接:) – Ace 2009-02-25 15:56:51

1

當您執行搜索時,您是否按下「Enter鍵」。如果是這樣,頁面中的第一個按鈕通常是在Enter鍵上提交的按鈕。

您可以在頁面或面板上設置DefaultButton。

所以如果你需要兩個按鈕來響應輸入按鈕在他們各自的頁面部分,在他們自己的asp:Panel中使用DefaultButton設置。

+0

我已經嘗試了兩個。只有搜索使用按鈕,點擊單個帳戶通過超鏈接 – Ace 2009-02-25 15:52:48

0

我通常會看到的是,瀏覽器強制您在點擊後刷新頁面。所以要實際做任何你重新發布的頁面,重新發送點擊。 你可以使用一個正常的asp:超鏈接,而不是asp:linkbutton。您將保存回發,並完全避免該問題。