kenzo080
Messages postés16Date d'inscriptionjeudi 13 mai 2004StatutMembreDernière intervention18 octobre 2005
-
6 juil. 2005 à 17:04
kenzo080
Messages postés16Date d'inscriptionjeudi 13 mai 2004StatutMembreDernière intervention18 octobre 2005
-
7 juil. 2005 à 19:37
Je dispose d un datagrid avec des textbox au niveau du footer.
Mon probleme est que pour acceder a mon footer, je suis obliger de descendre avec la fleche du bas a droite de ma page car j ai beaucoup de ligne dans mon datagrid.
Je voulais savoir si il etait possible par le biais d un click sur un linkbutton, le focus se met directement sur mon premier textbox du footer
Je demande cela car lorque je clique sur le linkbutton, je rends visible mon footer et plein d autres affaires en meme temps.
J ai trouvé sur developpez.com le code suivant :
public void setFocus(System.Web.UI.WebControls.WebControl champ){
//Champ est le webcontrol sur lequel on veut mettre le focus
string s;
s = "<script language= "javascript">document.getElementById('" +
champs.ClientID + "').focus()</script>";
Page.RegisterStartupScript("focus", s);
}
Ca marche bien sur un textbox normal, mais je n arrive pas a l utiliser sur un textbox dans un datagrid.
Merci poour votre aide car je galere dessus depuis plusieurs jours
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 6 juil. 2005 à 21:15
Es tu sur que tu recuperes l'id de ton controle ? car si oui il n'y a
pas de raison, mais je pense que lorsque tu ecris ceci tu ne connais
pas encore l'id, regarde dans l'html si tout est correcte, car
normalement ca devrait fonctionner
Sinon, pour ce qui est du problème, il faut réussir à recuperer le clientID du controle qu'il veut donner le focus, le clientID est la propriété ID html cad tagrille__ctl4_ta_textbox
kenzo080
Messages postés16Date d'inscriptionjeudi 13 mai 2004StatutMembreDernière intervention18 octobre 2005 7 juil. 2005 à 15:18
Salut,
Deja merci pour m avoir repondu aussi rapidement.
Pour ce qui est de mon probleme, comme je vous l ai dit, le textbox ce trouve dans le footer de mon datagrid. Et dans l exemple que j avais trouvé, il y avait un moment "System.Web.UI.WebControls.WebControl champ", or comme il se trouve dans le datagrid, je crois que c est de la que viens l erreur....mais c est une hypothese biensure.Je viens de mettre comme vous avez dit "document.forms["ta_form"].ta_textbox" mais rien ne se passe.
Pouvais vous me reecrir la fonction entierement car je ne voix pas trop ou vous voulez en venir.....merci d avance
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 7 juil. 2005 à 17:37
grrrrr (re)
l'attribut name ne sert plus à rien, c'est une complete aberation de l'avoir laissé (j'arrive d'ailleurs pas à comprendre ils met pas la meme valeur à la propriété name que id ...)
mais il faut utiliser l'id de l'element !
sinon pour le pourquoi qu'il fait ca, ca sert à avoir un numéro unique, car on ne peut evidemment pas avoir 2 id identique dans une page ..
pour la facon dont il est généré, c'est simple, le controle implemente l'interface inamingcontainer ... c'est grace à cet interface qu'on pourra avoir des id unique.
l'id unique est construit suivant les controles parents, il va aller chercher le clientID du controle parent qui le contient jusqu'a arriver à l'objet page en cours. dans une datagrid, le textbox, est contenue par la page, le datagrid, et la ligne, comme la ligne n'a pas d'id asp lui en assigne un par défaut : ctl comme la ligne se repete il met un numéro en partant de 0.
dans ton cas, je suis pas sur que tu es de problème pour recuperer le clientID du textbox, car ton controle est dans le footer du datagrid, par contre je ne sais pas du tout comment acceder au footer d'un datagrid ...
ca doit etre possible, mais j'aime absolument pas le datagrid ! (pour ne pas dire que je le deteste) et par conséquent je m'en sert jamais ...
kenzo080
Messages postés16Date d'inscriptionjeudi 13 mai 2004StatutMembreDernière intervention18 octobre 2005 7 juil. 2005 à 19:37
Salut les gas,
Je viens de trouver une solution et je n avais pas vu que vous m aviez repondu....merci quand meme .
Donc dans ma solution, je reprend la fonction public void setFocus decrit en haut.
Puis dans le linkbutton, je mets le code suivant :
//sur -1, c est pour les textoxs du footer, sinon s il y avait eu des numeros de page, on aurait mis -2
Dans mon cpde, Ajout1 est le id de mon textbox.
En haut, j ai fait une faute de frappe, c est champs et non champ.....mais je pense que vous l auriez remarquer