Désolé pour le titre, mais en fait, je sais pas quoi mettre.
Mon souci n'est pas trés clair car je ne sais même pas trop par où commencer.
Je vais tenter de planter le contexte (et pas le serveur ! ) et faire des commentaire sur la pile que je poste plus bas.
Donc, j'ai mis un GridView dans mon composant Utilisateur, qui se trouve dans une page qui fait référence à une MasterPage.
Mon GridView se rempli bien. Il est construit pour partie dans le CodeBehind avec une fabrication des colonnes dynamique. Il est liée à un sqlDataSource dont je place la SelectComamnde dans le Init du Composant, le reste étant dans le code HTML.
Bref, tout se passe bien jusqu'au moment où je clique sur le ButtonField que j'ai placé à la fin de chaque ligne.
Ce bouton field est censé m'ouvrir une popup par le biais d'un JScript. Le code JScript n'est pas à remettre en cause car le souci n'est avec lui et il fonction aussi bien dans d'autre cas.
Ce qu'il se passe c'est ça :
Et la pile indique cela et je vous donne des commentaires ensuite :La connexion n'est pas fermée. L'état actuel de la connexion est ouvert.
La ligne +54 est dans la apge qui contient le Composant, et donc celle au-dessus aussi.[InvalidOperationException: La connexion n'est pas fermée. L'état actuel de la connexion est ouvert.]
System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +16
System.Data.SqlClient.SqlConnection.Open() +111
FrameWorkTechnique.ADO.DataManager.ExecuterRequeteSimple(String requete) +251
[AppExecption: La connexion n'est pas fermée. L'état actuel de la connexion est ouvert.]
FrameWorkTechnique.ADO.DataManager.ExecuterRequeteSimple(String requete) +372
OutilWeb.OutilsOW.GetApplicationGUID() +111
OutilWeb.OutilsOW.ParametresOW() +36
OutilWeb_Liste_Modules.Page_PreInit(Object sender, EventArgs e) +54
System.Web.UI.Page.OnPreInit(EventArgs e) +104
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1515
La fonction GetApplicationGUID et appelé dans la fonction ParametresOW et les deux font appel à la BDD.
Mais je ne comrpends aps pourquoi la connexion est ouverte. Le truc qui me permet de faire appel à l aBDD est dans un FrameWork maison qui gère l'ouverture et la fermeture de la connexion à la base.
Donc j'en ai déduit que c'est le GridView qui prend la connexion et ne la lâche pas.
Alors comment faire pour en être sûr ?
Et dans l'affirmative, comment faire pour qu'il ne se recharge pas en cliquant sur le ButtonField ?
Merci pour votre aide.
Partager