我有一個更新面板,它在頁面的一部分上引起回發,並在回發後有焦點(不在更新面板中)的控件失去焦點。如何確定哪個控件具有焦點並保存該值,以便在頁面重新加載時重新關注它。謝謝。在C中檢測集中控制#
回答
首先,我將注意力集中在所有輸入上,並保留上次聚焦的控件ID。那麼以後的UpdatePanel完成加載,我將焦點設置到最後一個
// keep here the last focused id
var LastFocusedID = null;
function watchTheFocus()
{
// on every input that get the focus, I grab the id and save it to global var
$(":input").focus(function() {
LastFocusedID = this.id;
});
}
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args) {
}
// after the updatePanel ends I re-bind the focus, and set the focus
// to the last one control
function EndRequest(sender, args) {
if(LastFocusedID != null)
$('#' + LastFocusedID).focus();
watchTheFocus();
}
jQuery(document).ready(function()
{
watchTheFocus();
});
的唯一想到的是,我使用jQuery做它,但我在這裏我的想法,你可以用多一點的代碼使之與出jQuery。
您可以使用activeElement
和hasFocus
屬性來獲取哪些元素具有焦點的javascript對象。
它可能不被所有人支持,因爲它是HTML5。
我在哪裏以及如何在aspx頁面或後面的c#代碼中執行此操作?那麼普通的HTML呢? –
你可以有一個隱藏的輸入欄「focusedControl」。在客戶端POST表單之前,您將activeElement ID放入輸入中。當您將頁面發送回客戶端時,您可以設置一個JavaScript事件'
init();「>'在DOM中搜索ID並集中控件。 –你能舉一個詳細的例子嗎?這可能會非常有幫助,並會非常感激。謝謝。 –
可以解決這樣的
var last_focused = null;
$(function() {
//store last focused element.
$("input").live("focus", function(){
last_focused = $(this);
});
});
//in Script manager
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(pageLoaded);
function pageLoaded(sender, args)
{
if(last_focused != null)
{
last_focused.focus();
}
}
我不使用jQuery但
這是在JavaScript?腳本管理器代碼放置在哪裏。對不起,我對JavaScript無知。 –
是的,它是javascript.It是微軟產品的jquery的asp.net.Here也有一些事件將觸發像page_load,你可以在asp.net中看到。當更新面板更新時,此功能將自動調用。更多信息http: //msdn.microsoft.com/en-us/magazine/cc163354.aspx – sathishkumar
有關腳本和/或代碼寫入位置的更多說明和詳細信息可能會有所幫助。謝謝。 –
- 1. 檢測哪個控制集中?
- 2. C#在webbrowser控件中檢測回傳
- 3. VB.NET:如何檢測集中控制之外的鼠標點擊
- 4. 檢測iphone中的根控制器sdk
- 5. 從控制器中檢測源視圖
- 6. 檢測點擊c中的控件#
- 7. 在C#中控制
- 8. 如何檢測控制檯輸入不是C++中的數字?
- 9. Javascript集中控制
- 10. 在Node.js中檢測CTRL + C
- 11. 在C++中檢測USB
- 12. 在C中檢測EOF
- 13. 檢測控制檔和W
- 14. 如何檢測/控制SoftInputPanel?
- 15. 檢測視圖控制器
- 16. 檢測任何控制按
- 17. 檢測控制檯窗口?
- 18. 檢測ActiveMQ流量控制
- 19. 集成測試的測試控制器
- 20. 在WinForms c#中獲得集中控制的最快方法?
- 21. 如何檢測用戶在C++(控制檯)中是否按下了任何鍵?
- 22. 檢測Ctrl + S鍵在控制檯
- 23. 檢測按鍵在控制檯
- 24. 檢測兒童控制在WPF
- 25. 檢測文件的字符集動態地在C++中
- 26. 在控制檯mfc程序中檢測到escape keypress
- 27. 在ASP.NET MVC控制器中檢測data-rel =「back」
- 28. 在Pygame中無法檢測到Xbox控制器的移動
- 29. 在主控制器中檢測子視圖上的觸摸
- 30. Rails在控制器中檢測請求類型?
,我弱的Java腳本,所以,如果你可以給沒有jQuery的也可能是非常有幫助,非常感謝一個詳細的例子。謝謝。 –
@DovMiller你需要檢查的唯一jQuery是$(「:input」)。focus(),現在做的是在輸入的焦點觸發器上添加一個函數。其餘的都是簡單的JavaScript。 – Aristos