Bonjour,

Voila mon problème :

Dans une page ASP (TabIndicateurs.aspx) j'ai une datalist qui est censé afficher plusieurs Control Indicateurs (chacun de ces CtrlIndicateur représente un tableau de données avec une datasource differente)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<asp:DataList ID="_DlListe" runat="server">
  <ItemTemplate>
    <Ctrl:Indicateurs ID="_CtrlIndicateurs" runat="server" />
  </ItemTemplate>
</asp:DataList>
Dans mon Control Indicateurs, j'ai déclaré une variable :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Private _StructureByFiltre As xErpIndicateurs.Dal.ClsTiStructure
Chaque control se sert de cette variable (interne au control) pour construire son tableau de données qui va être affiché ensuite dans la page TabIndicateurs.aspx.

Sur un titre de colonne du tableau généré par le control, j'ai mis un onClick="GoPageDetails" censé mettre dans une variable de session le _StructureByFiltre du control donc on a cliqué sur le titre de colonne du tableau... et ensuite lancer une nouvelle fenetre qui va se servir de cette variable de session.

Une fois que ma page TabIndicateurs est chargée il y a donc plusieurs tableaux correspondants à plusieurs controls (le même en fait affiché plusieurs fois mais avec des données différentes car datasources differentes)
Quand je clique sur mon titre de colonne d'un des tableaux il me lance bien la fonction GoPageDetails de CtrlIndicateurs mais il me dit que ma variable "_StructureByFiltre" est vide alors qu'elle n'a pas de raison d'être vide..

Le code dans CtrlIndicateurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
    Public Sub GoPageDetails()
        Try
            'Mise en variable de session pour pouvoir ensuite obtenir les détails sur DetailIndicateurs
            Session("ClsTiStructureByFiltre") = _StructureByFiltre.Clone()
            Response.Write("<body><script>window.open(""DetailIndicateurs.aspx"",""_blank"");</script></body>")
        Catch ex As Exception
            'Déclenche l'évènement sur l'erreur
            RaiseEvent PageError(ex)
        End Try
    End Sub

J'ai essayé d'expliquer le mieux possible mon problème mais c'est pas évident
ma question en fait est si dans une page on affiche plusieurs fois le même control, peut on après le chargement de la page encore accéder aux variables de ces controles? ou sont elles détruites après le chargement du contrôle? Et puis surtout comment puis-je faire pour résoudre mon problème ?

Merci,

Eric