Faire un SetFocus ou GotFocus ou LostFocus dans ASP.Net [Résolu]

cboulas
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 30 nov. 2004 à 20:18 - Dernière réponse : Goldeneye007
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Dernière intervention
9 juillet 2010
- 17 févr. 2006 à 15:44
Salut à tous, j'ai rechercher sur le forum sans trouver adéquat, dans les sources j'ai trouver ceci mais ça me parrait un peu lours pour du .NET

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'condition d'ouverture de page
setfocus(Textbox)
End Sub

    Public Function setFocus(ByVal champs As System.Web.UI.WebControls.WebControl)

        Dim s As String

        s = "<script language= ""javascript"">document.getElementById('" + champs.ClientID + "').focus()</script>"
        Page.RegisterStartupScript("focus", s)

    End Function


Quelqu'un à t'il une autre solution pour prendre le focus d'un objet ASP.Net

Merci à tous

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Dernière intervention
13 octobre 2010
- 30 nov. 2004 à 22:38
3
Merci
et non c'est la meilleur facon de faire, et c'est pas si lourd que ca, il n'y a que page.registerStatupScript(...,...) dans ce code :)

mais je comprend ce que tu veux dire. C'est pourtant la seule véritable astuce, tout simplement car la seule solution pour interagir avec le navigateur, dans ton cas, mettre le focus, et de passer par du code javascript, car asp.net travaille en mode "deconnecté", donc il faut dire à asp.net qu'il va devoir ecrire du code javascript ...

voila l'explication, peut etre que dans asp.net 2 (il me semble mais pas sur) il y aura la fonction setfocus, mais elle utilisera le meme procédé puisque c'est le seul possible

Cyril

Merci jesusonline 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de jesusonline
cboulas
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 30 nov. 2004 à 22:46
0
Merci
Ok merci Cyril, effectivement lorsque je dis lourd c'est que en VB je fait control.setfocus et c'est tout.

Merci

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Commenter la réponse de cboulas
jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Dernière intervention
13 octobre 2010
- 30 nov. 2004 à 23:04
0
Merci
oui j'avais bien compris :)

Je viens de verifier pour .net 2 ils ont mis la méthode comme ceci :

Page.SetFocus(TextBox1)

qui me donne dans ma page ca :



<script type="text/javascript">
<!--
WebForm_AutoFocus('TextBox1');// -->
</script>

et si on fouille dans les fichiers de script associé au tombe la dessus

function WebForm_FindFirstFocusableChild(control) {    if (control null || control.tagName null) {
        return null;
    }
    var tagName = control.tagName.toLowerCase();
    if (tagName == "undefined") {
        return null;
    }
    var children = control.childNodes;
    if (children != null) {
        for (var i = 0; i < children.length; i++) {
            try {
                if (WebForm_CanFocus(children[i])) {
                    return children[i];
                }
                else {
                    var focused = WebForm_FindFirstFocusableChild(children[i]);
                    if (WebForm_CanFocus(focused)) {
                        return focused;
                    }
                }
            } catch (e) {
            }
        }
    }
    return null;
}
function WebForm_AutoFocus(focusId) {
    var targetControl;
    if (__nonMSDOMBrowser) {
        targetControl = document.getElementById(focusId);
    }
    else {
        targetControl = document.all[focusId];
    }
    var focused = targetControl;
    if (targetControl != null && (!WebForm_CanFocus(targetControl)) ) {
        focused = WebForm_FindFirstFocusableChild(targetControl);
    }
    if (focused != null) {
        try {
            focused.focus();
            focused.scrollIntoView();
            if (window.__smartNav != null) {
                window.__smartNav.ae = focused.id;
            }
        }
        catch (e) {
        }
    }
}
function WebForm_CanFocus(element) {    if (element null || element.tagName null) return false;
    var tagName = element.tagName.toLowerCase();    return ((element.disabled null || element.disabled false) &&
            (element.type == null || element.type.toLowerCase() != "hidden") &&
            WebForm_IsFocusableTag(tagName) &&
            WebForm_IsInVisibleContainer(element)
            );
}
function WebForm_IsFocusableTag(tagName) {
    return (tagName == "input" ||
            tagName == "textarea" ||
            tagName == "select" ||
            tagName == "button" ||
            tagName == "a");
}
function WebForm_IsInVisibleContainer(ctrl) {
    if (ctrl.disabled == true ||
        ( typeof(ctrl.style) != "undefined" &&
          ( ( typeof(ctrl.style.display) != "undefined" &&
              ctrl.style.display == "none") ||
            ( typeof(ctrl.style.visibility) != "undefined" &&
              ctrl.style.visibility == "hidden") ) ) ) {
        return false;
    }
    else if (typeof(ctrl.parentNode) != "undefined" &&
             ctrl.parentNode != null &&
             ctrl.parentNode != ctrl) {
        return WebForm_IsInVisibleContainer(ctrl.parentNode);
    }
    return true;
}



j'ai pas cherché à le lire :D mais bon vu les titres ils verifient que ca fasse pas d'erreur JS, pour ne pas mettre le focus a une table ;) car oui on peut mettre n'importe quel controle dans page.SetFocus(control) y compris un image non "focussable"

quand je vois tout ca, ca fait envie asp.net 2 :D dommage qu'elle n'est pas encore sortis, et que je dois faire un site maintenant ;)

Cyril
Commenter la réponse de jesusonline
cboulas
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 1 déc. 2004 à 22:35
0
Merci
Salut Cyril,

J'ai donc tester mais il me dit que la méthode Focus n'est pas connu.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Commenter la réponse de cboulas
cboulas
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Dernière intervention
8 janvier 2014
- 1 déc. 2004 à 22:36
0
Merci
En fait je voudrais faire un setfocus mais sur un control ASP.Net et non HTML.

as-tu une idée ?

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Commenter la réponse de cboulas
jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Dernière intervention
13 octobre 2010
- 1 déc. 2004 à 23:42
0
Merci
ce que je t'ai montré au dessus c'est pour du .net 2 ;) et ca revient exactement au meme que ta méthode ci haut ...

Cyril
Commenter la réponse de jesusonline
Goldeneye007
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Dernière intervention
9 juillet 2010
- 17 févr. 2006 à 15:44
0
Merci
Moi je dois utiliser Set Focus mais c'est marqué que SetFocus n'est pas un menbre de string. J'ai expliquer mon problème à la page : http://www.aspfr.com/forum.v2.aspx?ID=665841&post=ok
Commenter la réponse de Goldeneye007

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.