2010-12-20 89 views
2

我有一個UpdatePanel內的幾個文本框/標籤。當我從其中一個文本框中跳出時,標籤必須用一些文本更新。這會導致頁面上的焦點重置爲最上面的元素。ASP.NET焦點滾動頁面輸入

這是一個數據輸入表單,用戶希望根本不必使用鼠標。我可以將焦點放回正確的文本框代碼:

Page.SetFocus(tbxInput); 

tbxInput.Focus(); 

在IE瀏覽器,瀏覽器滾動位置保持(宇豪!)。在Chrome和Firefox中,它不是;滾動位置被調整,以便焦點文本框是頁面上顯示的最後一個元素。這對用戶來說真的很令人不安。

我使用下面的規則在我的web.config:

<pages theme="Default" styleSheetTheme="Default" maintainScrollPositionOnPostBack="true" validateRequest="false"> 

我怎樣才能做到這一點IE瀏覽器的行爲?

回答

1

對於這種事情,我更新標籤文本從JavaScript(可能使用AJAX調用Web服務或頁面方法)。

+0

有沒有辦法通過某種方式繞過這種情況,讓標籤的文本更新時重點不再重置?似乎矯枉過正必須這樣做:[ – Harper 2010-12-20 20:42:09

+0

@Harper你有沒有找到你的評論的答案? – 2013-10-16 22:17:02

+0

@Tristan Descartes,我的解決方案(更新javascript中的標籤)確實避免了失去焦點。 OP運行的問題是他的UpdatePanel正在做一個回傳,並通過後面的代碼進行更新。但是,我的解決方案是純JavaScript,不會導致回發,並且完全不改變焦點。如果你需要從服務器獲取一些值,你甚至可以在你的javascript中使用AJAX。 – tster 2013-10-21 22:20:13

0

使用asp.net AJAX UpdatePanel是一個選項。你使用的是哪個版本的.net框架。

由於per this與4.0它應該工作,但我沒有嘗試過。

相關問題