Appeler du code-behing depuis javascript [Résolu]

cs_wally88 361 Messages postés jeudi 5 février 2004Date d'inscription 1 octobre 2010 Dernière intervention - 5 sept. 2007 à 11:11 - Dernière réponse : cs_wally88 361 Messages postés jeudi 5 février 2004Date d'inscription 1 octobre 2010 Dernière intervention
- 8 sept. 2007 à 18:18
Bonjour,
Je souhaiterais appeler une fonction se trouvant en code behind lors d'un evenement javascript.

J'aimerais en faite que lorsque je rempli ma textbox, la dropdownlist charge les elements d'une base de donnée par rapport au debut
du chiffre.

Y a bien l'événement textchanged, mais il faut sortir de la textbox pour que l'événement se declenche.

Si quelqu'un peut m'aider.

Merci.
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
cs_wally88 361 Messages postés jeudi 5 février 2004Date d'inscription 1 octobre 2010 Dernière intervention - 8 sept. 2007 à 18:18
3
Merci
Yeah c'est bon :D jsuis heureux.

// ma textbox ou l on rentre le code postal et la dropdown qui recevra les codes postaux
// et a chaque fois que l'on relache une touche lorsqu on saisie on appel la fonction cherche.

<asp:TextBox
ID="cp"
runat="server"
onkeyup="chercher(this);"
MaxLength="5"></asp:TextBox>

<br
/>
<asp:DropDownList
ID="DropDownList2"
runat="server"
Width="180px"
AutoPostBack="True" Enabled="False"></asp:DropDownList>

// fonction javascript permettant de verifié le nombre de caractere que contient la textbox, si c'est egale a 5 alors on lance un postback








function
chercher(val)



      if
(val.value.length == 5)
      {
            __doPostBack(

''
,

''
); 
        }
}

// fonction en code behind pour charger les villes par rapport a la textbox

public
SqlDataReader chargerdonneeVille()
{

string ConnnectionStr =
ConfigurationManager.AppSettings[
"connexion"].ToString();

SqlConnection sqlCon =
new
SqlConnection();
sqlCon.ConnectionString = ConnnectionStr;

string req =
"select distinct ville from code_postaux where cp like '" + cp.Text+
"%' order by ville ";

SqlCommand sqlCom =
new
SqlCommand(req, sqlCon);
sqlCon.Open();

SqlDataReader result = sqlCom.ExecuteReader(
CommandBehavior.CloseConnection);

return result;
}





Dans le Page_Load, on regarde si il y a eu un postback, si oui on met la dropdown utilisable(enable = true) et on charge les villes





if
(IsPostBack)
{
DropDownList2.Enabled =

true
;
DropDownList2.DataSource = chargerdonneeVille();
DropDownList2.DataTextField =

"ville"
;
DropDownList2.DataValueField =

"ville"
;
DropDownList2.DataBind();
DropDownList2.Items.Insert(0,

"Sélectionner"
);
}Merci de vous etre interressé a mon sujet :)

Merci cs_wally88 3

codes-sources a aidé 81 internautes ce mois-ci

Commenter la réponse de cs_wally88
yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 5 sept. 2007 à 21:03
0
Merci
Le plus compliqué : Se servir de l'objet XmlHttpRequest (xhr) en asynchrone sur le modèle d'ajax. On récupère une réponse en arrière plan sans recharger la page.

Le plus simple : remplir la listBox entièrement au form_load() et avec javascript, la retrier pendant la frappe.
Commenter la réponse de yann_lo_san
cs_wally88 361 Messages postés jeudi 5 février 2004Date d'inscription 1 octobre 2010 Dernière intervention - 6 sept. 2007 à 01:19
0
Merci
Merci pour la reponse pour se qui est de la plus vaut mieux pas ya 39000 lignes :) sa risque d etre long a charger nan ?
Pour la plus compliqué de ce que je connais d ajax c'est "Atlas" avec les updatepanel mais meme avec l update panel je sais pas comment faire :s .
Commenter la réponse de cs_wally88
yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 7 sept. 2007 à 23:21
0
Merci
Bonsoir,

y'a surement d'autres critères que tu peux proposer à l'utilisateur, pour réduire le nombre de lignes total avant le chargement de la page

Mais si j'ai bien compris, tu veux faire un postback à chaque caractères entrés dans le textBox ! Si c'est ça, ce n'est pas vraiment une bonne idée.

L'utilisateur entre le critère puis il clique sur 1 boutton 'rechercher', ce qui fait un submit et renvoi les résultats (avec 1 seul posback.)
Le javascript ne ferait que valider le critère avant le submit.

Bonne continuation...
Commenter la réponse de yann_lo_san
cs_wally88 361 Messages postés jeudi 5 février 2004Date d'inscription 1 octobre 2010 Dernière intervention - 7 sept. 2007 à 23:26
0
Merci
en faite ce sont les code postaux donc quand le 5 chiffres sont rentré la dropdonw doit recevoir les ville par rapport au code.
mais comment demarrer le postback quand les 5 chiffres sont rentrés, c'ets plutot sa la questions donc avec textchanged je pensais que sa chargerais a chaque fois qu on rajoute une lettre mais non c'est juste quand la text perd le focus.
Merci de t interessé a mon soucis :)
Commenter la réponse de cs_wally88
yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 7 sept. 2007 à 23:55
0
Merci
Tu as l'event onblur :
Commenter la réponse de yann_lo_san
cs_wally88 361 Messages postés jeudi 5 février 2004Date d'inscription 1 octobre 2010 Dernière intervention - 7 sept. 2007 à 23:59
0
Merci
onblur est pour appeler javascript comment je charge ma base de donnéee depuis javascript ?  a moin que je mette mes 39000 enregistrement dans ma dropdown a la base mais ca va etre lourd :s 
si ta une idée :o)
Merci
Commenter la réponse de cs_wally88
yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 8 sept. 2007 à 00:34
0
Merci
Grace à javascript, dans la fonction 'handler();' de l'event onblur, tu récupères la valeur du textBox :
var param = document.getElementById('txtCode').value;

Puis vient l'interet du submit, tu vas ressoumettre la page en cours avec un param de requete en plus :
'URL_thisPage.aspx' + '?' + param
puis :
document.navigate(newUrl);
ou window.location.href = newUrl;
 (ou un truc du genre)

Dans le onload() de ta page rechargée, tu récupères le param de requete.
Request.QueryString("param")

Si il est à null, c'est un submit normal, si il contient une valeur, tu remplis tes villes grace au code 'param'

Si d'autres param sont déjà entrés dans la form, il faut les récupérer aussi et les réaffecter.

La page se recharge avec la liste selon le code saisi.

Là, c'est plutot ce que l'on fait en asp 1. avec .net, il y a certainement plus simple pour forcer un submit avec l'url modifiée.
Commenter la réponse de yann_lo_san
cs_wally88 361 Messages postés jeudi 5 février 2004Date d'inscription 1 octobre 2010 Dernière intervention - 8 sept. 2007 à 00:37
0
Merci
Oki mais le but etais de ne pas cliquer sur un boutton, j'ai vue que sa se fesais mais en php je me suis dis qu on devais surmeent pouvoir le faire en asp.net. Le clique boutton ne m'arrange pas trop. Enfin si j'ai pas le choix :s .
Merci beaucoup
Commenter la réponse de cs_wally88
yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 8 sept. 2007 à 00:41
0
Merci
Y'a pas de click, c'est le onblur qui est appelé à la perte de focus du textbox.
Commenter la réponse de yann_lo_san
cs_wally88 361 Messages postés jeudi 5 février 2004Date d'inscription 1 octobre 2010 Dernière intervention - 8 sept. 2007 à 02:42
0
Merci
onblur reviens au textchanged alors :s ca va pas non plus il faut que l evenement se charge quand le 5 chiffre est rentré :).
sans faire de pub sa se trouve sur lovbox.eu lorsqu on rempli sont profil :) me faut la meme chose.
Commenter la réponse de cs_wally88
Netlink 139 Messages postés mercredi 2 avril 2003Date d'inscription 12 juillet 2011 Dernière intervention - 8 sept. 2007 à 14:14
0
Merci
Salut,

Je viens de tomber sur ceci :
http://www.toutjavascript.com/main/gorun.php3?s=listekeyhttp://www.toutjavascript.com/main/gorun.php3?s=listekey







Peut-être qu'en fouillant dans la source javascript tu arriveras à l'adapter à ton cas




@ bientôt, Matt
Commenter la réponse de Netlink

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.