Bonjour,

J'aimerais utiliser une pile pour stocker les opérations et pouvoir annuler étape par étape.

Tout d'abord, j'ai deux GridView et je permet de transférer d'un GridView à un autre avec deux boutons (-> et <-). Les deux sont liés à des datatables comme datasource. Les boutons permettent d'enlever et d'ajouter une Row dans mes datatables selon ceux qui ont été sélectionnées. Voici leur code :

Bouton Droit (->)
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
 Protected Sub btnDroit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnDroit.Click
        Dim iCptSelect As Integer
 
        For iCptSelect = gvElementsCandidats.Rows.Count - 1 To 0 Step -1
            If CType(gvElementsCandidats.Rows(iCptSelect).Cells(0).FindControl("chkSelect"), CheckBox).Checked = True Then
                CType(gvElementsCandidats.Rows(iCptSelect).Cells(0).FindControl("chkSelect"), CheckBox).Checked = False
                dtCouplages.Rows.Add(cbElements.SelectedValue, gvElementsCandidats.Rows(iCptSelect).Cells(1).Text, False, "", _
                            gvElementsCandidats.Rows(iCptSelect).Cells(2).Text)
                dtElements.Rows.RemoveAt(iCptSelect)
            End If
        Next
        Session("dvElements") = dtElements.DefaultView
        Session("dvCouplages") = dtCouplages.DefaultView
 
        MAJGridView()
    End Sub
Bouton Gauche (<-)
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
 
    Protected Sub btnGauche_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGauche.Click
        Dim iCptSelect As Integer
 
        For iCptSelect = gvElementsSelect.Rows.Count - 1 To 0 Step -1
            If CType(gvElementsSelect.Rows(iCptSelect).Cells(0).FindControl("chkSelect"), CheckBox).Checked = True Then
                CType(gvElementsSelect.Rows(iCptSelect).Cells(0).FindControl("chkSelect"), CheckBox).Checked = False
                dtElements.Rows.Add(gvElementsSelect.Rows(iCptSelect).Cells(1).Text, gvElementsSelect.Rows(iCptSelect).Cells(2).Text)
                dtCouplages.Rows.RemoveAt(iCptSelect)
            End If
        Next
        Session("dvElements") = dtElements.DefaultView
        Session("dvCouplages") = dtCouplages.DefaultView
 
 
        MAJGridView()
    End Sub
Je me demandais qu'est-ce que je devrais stocker dans la pile pour pouvoir annuler étape par étape.

Merci,

Évans