Bonjour,

Je suis en train de réaliser un contrôle serveur en VB.NET qui, grosso-modo, affiche une GridView et quelques autres éléments.

Mon contrôle nommé "ListerEchanges" utilise un Gridview. Il se bâti dans la méthode overridée CreateChildControls().

Dans mon gridview, je crée des colonnes "maison" de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
' Création colonne Date de création
Dim objTemplateFieldDatCreation As New TemplateField
objTemplateFieldDatCreation.HeaderTemplate = New ColonneDateCreation(ListItemType.Header)
objTemplateFieldDatCreation.ItemTemplate = New ColonneDateCreation(ListItemType.Item)
GridviewEchanges.Columns.Add(objTemplateFieldDatCreation)
Dans ce contrôle, une entête de colonne est définie dans une autre classe héritant de ITemplate. La classe ColonneDateCreation est comme suis:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Class ColonneDateCreation
Implements System.Web.UI.ITemplate
 
SelectCase (templateType)
Case ListItemType.Header
objLinkButton = New LinkButton()
objLinkButton.Text = "Date de <br /> création"
container.Controls.Add(objLinkButton)
 
(....)
 
PrivateSub objLinkButton_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles objLinkButton.Click
Session.Add("Test", "Test2")
EndSub
 
Le problème, c'est que mon contrôle est recréer AVANT que l'évênement "Click" du LinkButton ne survienne. La valeur mise en session n'est donc pas récupérable par le contrôle.

Comment pourrais-je faire? J'ai essayé de déplacer la création de mes contrôles dans les évênements "Load" et "Init"... sans succès : le Click du bouton est toujours dernier.

Merci beaucoup