Bonjour,

J’ai une question un peu pointue sur un problème de gestion d’evenement.

J’ai créé une page ASP.Net avec un GridView qui affiche un certain nombre de propriété d’une collection d’objet, les informations sont liées grâce au DataBinding.

Dans les Template field des colonnes du gridview j’ai mis un itemtemplate que j’ai créé, capable de présenter les informations.

Cet ItemTemplate contient un contrôle que j’ai créé, qui est un carré de couleur, que l’utilisateur peu modifier en cliquant dessus.

Dans l’itemtemplate et dans le control, j’ai attaché des événements afin qu’au rechargement de la page ceux-ci prennent en compte les changements fait par l’utilisateur, et cela fonctionne.

Le problème c’est lorsqu’il y a plusieurs changement de plusieurs control, dans ce cas, la page ne déclenche l’événement qu’une seule fois, pour le premier control modifié et ne prend pas en compte les autres.

Je précise que chacun des control est une instance distincte, et j’ai vérifié que les événements étaient bien attachés à chacun des control.

Voici le code de mon control qui gère l’événement :

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
18
19
 Public Shadows Sub RaisePostDataChangedEvent() Implements IPostBackDataHandler.RaisePostDataChangedEvent
   OnChange()
End Sub
 
Public Shadows Function LoadPostData(ByVal postDataKey As String, ByVal postCollection As Collections.Specialized.NameValueCollection) As Boolean Implements IPostBackDataHandler.LoadPostData
If postCollection.Item(Me.ClientID & "_hidden") Is Nothing Then
   Return False
End If
If Not postCollection.Item(Me.ClientID & "_hidden") = Me.ViewState("Couleur") Then
   Me.Couleur = postCollection.Item(Me.ClientID & "_hidden")
   Return True
Else
   Return False
End If
End Function
 
Private Sub OnChange()
   RaiseEvent Change(Me, New System.EventArgs)
End Sub
J'espere que vous pourrez m'eclaircir.