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 :
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 ' 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)
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.
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
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
Partager