Bonjour à tous,
Je suis en train d'essayer de faire en sorte que l'événement onchange d'une textbox (coté client) fasse un appel coté serveur.
Pour éviter les problèmes de performances j'ai envisagé d’appeler le postback sur les événements onkeydown et onkeyup avec un système de timer.
Tout fonctionne à merveille mais le postback se fait en boucle...
Un peu de code pour rendre mon problème plus compréhensif :
Mon javascrpt :
Ma textbox et son bouton caché :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <script type="text/javascript"> var to; // variable to which we assign setTimeout function var prm = Sys.WebForms.PageRequestManager.getInstance(); // Page Request Manager object function onRechercheKeyUp() { to = setTimeout('performSearch();', 1500); } function onRechercheKeyDown() { if (to) clearTimeout(to); } function performSearch() { if (prm.get_isInAsyncPostBack) { prm.abortPostBack(); } __doPostBack("<%=butRechercher.UniqueID %>", ""); } </script>
Et enfin le code behind du bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <asp:TextBox ID="txtRechercheSerie" runat="server" CssClass="span12" placeholder="Rechercher une série" onkeydown="onRechercheKeyDown();" onkeyup="onRechercheKeyUp();"> </asp:TextBox> <asp:Button runat="server" ID="butRechercher" Style="display: none" OnClick="butRechercher_Click" />
Je suis presque à la fin de mon problème mais butRechercher_Click est appelé en boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 protected void butRechercher_Click(object sender, EventArgs e) { recherche = txtRechercheSerie.Text; ChargerDataGridSeries(); }
Est ce que vous avez des suggestions ?
Je compte vraiment sur vous.
Merci d'avance,
Vinceee38
Partager