2010-08-13 5 views
0

Je souhaite filtrer une grille côté serveur en fonction de la valeur saisie dans une zone de texte. Et le filtre doit se produire lorsque l'utilisateur tape dans la zone de texte. Comme il n'y a pas d'événement côté serveur comme une touche de pression sur une zone de texte, j'ai décidé d'utiliser l'événement onkeypress côté client et d'appeler un code côté serveur en utilisant PageMethod. Mais puis s'est épuisé avec la limitation de PageMethod étant statique et je ne peux pas accéder à la grille à partir du code côté serveur.Filtrer une grille côté serveur en fonction de la valeur tapée dans une zone de texte

< forme id = "Form1" runat = "server">

< asp:ScriptManager ID="ScriptManager" runat="server" EnablePageMethods="true" /> 
     <input type="text" id="txtFilterLabName" onkeypress ="txtFilterLabName_Keypress()"/> 
</form> 

<script type="text/javascript"> 
    function txtFilterLabName_Keypress() { 
     // Call a server method. 
     PageMethods.txtFilterLabName_Keypress(); 
    } 
</script> 

[WebMethod]

public static void txtFilterLabName_Keypress()

{ // code pour filtrer la grille . }

Y at-il moyen de le faire?

Répondre

0

Vous avez raison de ne pas pouvoir accéder à la grille pendant une méthode de page. Une méthode de page est juste un appel de service Web et ne sait rien de la page sur laquelle l'utilisateur se trouve. Pour cela, vous devrez mettre à jour la grille sur le client après l'appel de la méthode page. Je ne crois pas que le contrôle de grille standard supporte cela, donc vous devrez soit écrire votre propre code pour le faire ou utiliser un contrôle tiers.

Si vous affichez simplement des données dans la grille et ne soutenez pas le tri et le filtrage, il peut être facile de simplement mettre à jour la table sous-jacente via javascript.

Questions connexes