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:
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:
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:
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