Güncelleme paneli olan bir sayfada dört denetime sahibim. Başlangıçta fare odağı ilk kontrole ayarlanır. Sayfayı sunucuya kısmen geri gönderdiğimde, odağı otomatik olarak son kontrol edilen kontrolden ilk kontrole geçiyorum. Son odağı sürdürmenin bir yolu var mı?UpdatePanel'de odak konumunu sayfa kısmi geri gönderildikten sonra nasıl koruyabilirim
5
A
cevap
10
Restoring Lost Focus in the Update Panel with Auto Post-Back Controls bir göz atın:
çözümü ardındaki temel fikir güncelleme paneli güncellenir önce giriş odaklı denetim kimliği kaydetmek ve sonra o kontrole geri odak girişi ayarlamaktır güncelleme paneli güncellenir.
Kayıp odağı güncelleştirme bölmesinde geri yükleyen şu JavaScript ile geliyorum.
var lastFocusedControlId = ""; function focusHandler(e) { document.activeElement = e.originalTarget; } function appInit() { if (typeof(window.addEventListener) !== "undefined") { window.addEventListener("focus", focusHandler, true); } Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(pageLoadingHandler); Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoadedHandler); } function pageLoadingHandler(sender, args) { lastFocusedControlId = typeof(document.activeElement) === "undefined" ? "" : document.activeElement.id; } function focusControl(targetControl) { if (Sys.Browser.agent === Sys.Browser.InternetExplorer) { var focusTarget = targetControl; if (focusTarget && (typeof(focusTarget.contentEditable) !== "undefined")) { oldContentEditableSetting = focusTarget.contentEditable; focusTarget.contentEditable = false; } else { focusTarget = null; } targetControl.focus(); if (focusTarget) { focusTarget.contentEditable = oldContentEditableSetting; } } else { targetControl.focus(); } } function pageLoadedHandler(sender, args) { if (typeof(lastFocusedControlId) !== "undefined" && lastFocusedControlId != "") { var newFocused = $get(lastFocusedControlId); if (newFocused) { focusControl(newFocused); } } } Sys.Application.add_init(appInit);
3
Bunu daha zarif bulmak:
(function(){
var focusElement;
function restoreFocus(){
if(focusElement){
if(focusElement.id){
$('#'+focusElement.id).focus();
} else {
$(focusElement).focus();
}
}
}
$(document).ready(function() {
$(document).on('focusin', function(objectData){
focusElement = objectData.currentTarget.activeElement;
});
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(restoreFocus);
});
})();
İlgili konular
- 1. DatePicker, geri gönderildikten sonra kayboluyor
- 2. dinamik sütunlar, geri gönderildikten sonra kayboluyor
- 3. UserControl Viewstate, geri gönderildikten sonra tüm değerleri kaybeder
- 4. Ajax gönderildikten sonra yönlendirme
- 5. node.js geri aramalarında kapsamı nasıl koruyabilirim?
- 6. Form gönderildikten sonra ekran uyarısı görüntülendi ve sayfa yenilendi
- 7. gönderildikten sonra güncellenen sayfayı yenile
- 8. Kısmi sayfa curl animasyonu
- 9. ModalPopupExtender: Bir gönderiyi sürükleyip bıraktıktan sonra konumumu nasıl koruyabilirim?
- 10. Gönderildikten sonra giriş formu nasıl yenilenir?
- 11. angularjs gönderildikten sonra formu gizlemek nasıl
- 12. Başlıklar gönderildikten sonra yanıt göndermek imkansız
- 13. onActivityResult, kamera niyetinde gönderildikten hemen sonra çağrılıyor
- 14. Formdan sonra odak denetimi gösteriliyor
- 15. Geri Bildirim Verme UI öğesi durumunu nasıl koruyabilirim? (ASP.NET MVC)
- 16. CKEditor: Düzenleyici # setData çağırdıktan sonra düzeltme konumunu geri yükle
- 17. Güncelleme panelinde Javascript kısmi geri bildirim bittikten sonra çalışmaz
- 18. Varsayılan değer, gönderildikten sonra hala seçili
- 19. Hata: Gönderildikten sonra başlıklar ayarlanamıyor. Node Expressjs
- 20. form gönderildikten sonra E-posta gönder
- 21. Passport JS "Üstbilgiler gönderildikten sonra ayarlanamaz"
- 22. Raylar: geri iki sayfa yönlendirme
- 23. Başarılı bir şekilde veri gönderildikten sonra ajax'te nasıl yönlendirilir?
- 24. Kaydırıcı hızını nasıl koruyabilirim?
- 25. Kaydırıcı hızını nasıl koruyabilirim?
- 26. Galeri odak konumuna nasıl gidilir
- 27. Orijinal Dosya Adını nasıl koruyabilirim Symfony uygulamasında yükledikten sonra
- 28. Android - Spinner seçiminden sonra EditText odak ayarlamak
- 29. R'de, bir işleve gönderildikten sonra bir nesnenin adı nasıl alınır?
- 30. Giriş sayfası kısmi veya tam sayfa yüklenmiyor