Ben justement, j'ai mis le VaryByParam="*"
Mais il me prend toujours l'ancienne valeur.
J'ai même mis le Duration="10", histoire de descendre le temps, mais rine n'y fait, toujours l'ancienne valeur.
Version imprimable
Ben justement, j'ai mis le VaryByParam="*"
Mais il me prend toujours l'ancienne valeur.
J'ai même mis le Duration="10", histoire de descendre le temps, mais rine n'y fait, toujours l'ancienne valeur.
Et ça, tu l'as correctement configuré:
SqlDependency="Northwind:Employees"
Oui, j'ai mis le nom de ma base et le nom de la table, et j'ai fait attention aux majuscule.
Mais, est ce que le fait que mon GridView se nourrisse d'une vue sur cette table n'influe pas ?
Peut être
Essayes sur une table plutôt qu'une vue et tu seras fixé
Non, toujours pareil, la donnée ne change pas. donc, ça ne vient pas de l'utilisation d'une vue.
Mais cela ne solutionne pas le problème.
Par contre, je me fait une réflexion : ena ctivant le cache comme on est en trian de le faire, tu dis qu'à chaque fois qu'il y aura une modification dans la table, ASP redemadnera les donnée à SQL. Mais du coup, vu que c'est une table qui va beaucoup bouger, ça sert pas à grand chose, il va recharger à chaque fois et donc prendre un temps pas possible à chaque navigation.
Ou alors, j'ai pas compris.
Bah ouais, ça sert à rien. :aie:
Bon, alors reprenons le problème à la base.
J'ai activé le cache juste sur le GridView avec le EnabledCaching = True.
Comment je peux faire pour fabriquer une bouton qui va recahrger le GridView ?
En rappelant la méthode DataBind non?
Non, ça marche pas.
J'ai jouté des trucs sur le EnabledCaching et mon button marche avec ça :
Sur le rechargement, ça amrche, je vois la nouvelle valeur, mais si je navigue dans le GridView, l'ancienne reviens de suite.Code:
1
2
3
4 sdsBien.EnableCaching = False gvBien.DataBind() sdsBien.EnableCaching = True
J'ai vriament du mal à comprendre.
j'ai eu le même problème de performance
j'ai utilisé une bonne astuce/feinte/requête dégeulasse pour contourner
ça ne retourne que les 100 premières lignes de ta requête, une sorte de top 100 mais paramétrable (les 1 et 100) que j'ai remplacé par des variables de sessionsCode:SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY MaClePrimaire) AS Row, * FROM dbo.MaTable) AS EMP WHERE Row BETWEEN 1 AND 100
ensuite, pour naviguer dans le gridview, j'ai recrée le page du gridview avec des hyperlink (très facile à faire) et ajouter du code pour changer les 1 et 100 suivant le lien cliqué
ce n'est peut être pas la gloire comme code... mais ça fonctionne, et pas besoin de modifier des paramètres sur SQLServer dont on n'a pas toujours la main
Merci pour cette aide trés précisues.
Je note ça dans un coin et je fais des tests pour voir.
Pas tout de suite parce que je dois gérer une autre truc avant, mais dés que je remets le couvert sur mon gros GridVeiw, je fais et je te tiens au courant.
Ben en fait, ça marche pas avec SQL 2000. Il me dit que
Citation:
'ROW_NUMBER' n'est pas un nom de fonction reconnu.
ah oui désolé, c'est avec SQLServer 2005
je ne sais pas s'il y a une fonction analogue sous 2000