Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question treeview

11 réponses
Avatar
Jean Claude
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access) une liste
de produits avec des checkbox pour pouvoir supprimer un produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude

10 réponses

1 2
Avatar
Patrice
La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc si la
hastable selection est crée à partir de données présentes en base elle sera
recrée lors du prochain postback avec toutes ses données même si une entrée
y a été supprimée précédemment (mais ce n'est pas la MEME ce'est juste la
hastable qui avait été créée le coup d'avant).


--
Patrice


"Jean Claude" a écrit dans le message de
news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access) une
liste de produits avec des checkbox pour pouvoir supprimer un produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude




Avatar
Jean Claude
Bonjour Patrice

La sélection :
Je case une CkecBox du GridView, et je clic sur le bouton
J'ai une boucle For Next pour chercher la CheckBox cochée
ce qui me donne le rowIndex
ensuite Public Sub SupprimerArticle devrait supprimer la ligne

Jean Claude

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:

La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc si la
hastable selection est crée à partir de données présentes en base elle
sera recrée lors du prochain postback avec toutes ses données même si une
entrée y a été supprimée précédemment (mais ce n'est pas la MEME ce'est
juste la hastable qui avait été créée le coup d'avant).


--
Patrice


"Jean Claude" a écrit dans le message de
news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access) une
liste de produits avec des checkbox pour pouvoir supprimer un produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude








Avatar
Patrice
Au temps pour moi je parlais de la HashTable "Selection". Je pense qu'elle
pourrait être recréée avec la ligne détruite lors du "postback" qui suit le
"postback" ayant permis de détruire la ligne...

--
Patrice

"Jean Claude" a écrit dans le message de
news: 47fe315b$0$874$
Bonjour Patrice

La sélection :
Je case une CkecBox du GridView, et je clic sur le bouton
J'ai une boucle For Next pour chercher la CheckBox cochée
ce qui me donne le rowIndex
ensuite Public Sub SupprimerArticle devrait supprimer la ligne

Jean Claude

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:

La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc si la
hastable selection est crée à partir de données présentes en base elle
sera recrée lors du prochain postback avec toutes ses données même si une
entrée y a été supprimée précédemment (mais ce n'est pas la MEME ce'est
juste la hastable qui avait été créée le coup d'avant).


--
Patrice


"Jean Claude" a écrit dans le message de
news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access) une
liste de produits avec des checkbox pour pouvoir supprimer un produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude












Avatar
Jean Claude
Bonjour Patrice

le problème c'est qu'elle ne détruit pas la ligne, dans cette procédure :

Public Sub SupprimerArticle(ByVal IDproduit As String)
If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End sub
Et pourtant le Me.Gdv.DataKeys(row.RowIndex).Value) est bon il est égal à la
ligne 2, ce qui correspond au produit IDproduit=3, le If ............ saute
le selection.remove

Cordialement
JClaude




"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Au temps pour moi je parlais de la HashTable "Selection". Je pense qu'elle
pourrait être recréée avec la ligne détruite lors du "postback" qui suit
le "postback" ayant permis de détruire la ligne...

--
Patrice

"Jean Claude" a écrit dans le message de
news: 47fe315b$0$874$
Bonjour Patrice

La sélection :
Je case une CkecBox du GridView, et je clic sur le bouton
J'ai une boucle For Next pour chercher la CheckBox cochée
ce qui me donne le rowIndex
ensuite Public Sub SupprimerArticle devrait supprimer la ligne

Jean Claude

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:

La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc si la
hastable selection est crée à partir de données présentes en base elle
sera recrée lors du prochain postback avec toutes ses données même si
une entrée y a été supprimée précédemment (mais ce n'est pas la MEME
ce'est juste la hastable qui avait été créée le coup d'avant).


--
Patrice


"Jean Claude" a écrit dans le message
de news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access) une
liste de produits avec des checkbox pour pouvoir supprimer un produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude
















Avatar
Patrice
Que donne un point d'arrêt ? Il est facile de vérifier si ContainsKey
retourne bien vrai et si la ligne Selection.Remove est bien appelée...

Pour l'instant, j'essayais de comprendre comment est créée la variable
Selection. Ne pas oublier qu'en ASP.NET la page est toujours recréée de 0 à
chque fois et pour l'instant je soupçonnerais plutôt que la variable
Selection est recrée à chaque fois ce qui annulerait donc toute suppression
que tu aurais pu y faire lors de la précédente création de page...

Donc comment est créée cette variable ?

--
Patrice


"Jean Claude" a écrit dans le message de
news: 47ff0984$0$884$
Bonjour Patrice

le problème c'est qu'elle ne détruit pas la ligne, dans cette procédure :

Public Sub SupprimerArticle(ByVal IDproduit As String)
If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End sub
Et pourtant le Me.Gdv.DataKeys(row.RowIndex).Value) est bon il est égal à
la ligne 2, ce qui correspond au produit IDproduit=3, le If ............
saute le selection.remove

Cordialement
JClaude




"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Au temps pour moi je parlais de la HashTable "Selection". Je pense
qu'elle pourrait être recréée avec la ligne détruite lors du "postback"
qui suit le "postback" ayant permis de détruire la ligne...

--
Patrice

"Jean Claude" a écrit dans le message de
news: 47fe315b$0$874$
Bonjour Patrice

La sélection :
Je case une CkecBox du GridView, et je clic sur le bouton
J'ai une boucle For Next pour chercher la CheckBox cochée
ce qui me donne le rowIndex
ensuite Public Sub SupprimerArticle devrait supprimer la ligne

Jean Claude

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:

La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc si la
hastable selection est crée à partir de données présentes en base elle
sera recrée lors du prochain postback avec toutes ses données même si
une entrée y a été supprimée précédemment (mais ce n'est pas la MEME
ce'est juste la hastable qui avait été créée le coup d'avant).


--
Patrice


"Jean Claude" a écrit dans le message
de news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access) une
liste de produits avec des checkbox pour pouvoir supprimer un produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude




















Avatar
Jean Claude
Bonjour Patrice

La variable IDproduit est créée par le DataKeyName=IDproduit du treeView

Donc quand je coche une case cela me donne la ligne (Row.RowIndex).value,
dans la procédure du bouton ibMaj_click (et cela donne donc l'IDproduit)
Donc si je met un point d'arret sur le bouton j'ai :

1°) Protected Sub ibMaj_Click ......................
Dim row As GridViewRow = Gdv.SelectedRow
Dim chk As CheckBox
For Each row In Me.Gdv.Rows
If row.RowType = DataControlRowType.DataRow Then
chk = CType(row.Cells(7). _
FindControl("chkSupprimer"), CheckBox)
If chk.Checked Then
' Suppression d'un article
Me.SupprimerArticle( Me.Gdv.DataKeys(row.RowIndex).Value)
End If
End If
Next
End Sub

Je coche la premiere ligne et donc Me.Gdv.DataKeys(row.RowIndex).Value=ligne
0
ensuit cele passe sur la procédure Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String) ' si je mets ma
souris sur IDproduit cela me donne 11 qui l'IDproduit dans la base Access

If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End Sub

Et pourtant la ligne Selection.Remove n'est pas appelée
C'est bien cela que tu voulais ?
Jean Claude


"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Que donne un point d'arrêt ? Il est facile de vérifier si ContainsKey
retourne bien vrai et si la ligne Selection.Remove est bien appelée...

Pour l'instant, j'essayais de comprendre comment est créée la variable
Selection. Ne pas oublier qu'en ASP.NET la page est toujours recréée de 0
à chque fois et pour l'instant je soupçonnerais plutôt que la variable
Selection est recrée à chaque fois ce qui annulerait donc toute
suppression que tu aurais pu y faire lors de la précédente création de
page...

Donc comment est créée cette variable ?

--
Patrice


"Jean Claude" a écrit dans le message de
news: 47ff0984$0$884$
Bonjour Patrice

le problème c'est qu'elle ne détruit pas la ligne, dans cette procédure :

Public Sub SupprimerArticle(ByVal IDproduit As String)
If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End sub
Et pourtant le Me.Gdv.DataKeys(row.RowIndex).Value) est bon il est égal à
la ligne 2, ce qui correspond au produit IDproduit=3, le If ............
saute le selection.remove

Cordialement
JClaude




"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Au temps pour moi je parlais de la HashTable "Selection". Je pense
qu'elle pourrait être recréée avec la ligne détruite lors du "postback"
qui suit le "postback" ayant permis de détruire la ligne...

--
Patrice

"Jean Claude" a écrit dans le message
de news: 47fe315b$0$874$
Bonjour Patrice

La sélection :
Je case une CkecBox du GridView, et je clic sur le bouton
J'ai une boucle For Next pour chercher la CheckBox cochée
ce qui me donne le rowIndex
ensuite Public Sub SupprimerArticle devrait supprimer la ligne

Jean Claude

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc si
la hastable selection est crée à partir de données présentes en base
elle sera recrée lors du prochain postback avec toutes ses données
même si une entrée y a été supprimée précédemment (mais ce n'est pas
la MEME ce'est juste la hastable qui avait été créée le coup d'avant).


--
Patrice


"Jean Claude" a écrit dans le message
de news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access)
une liste de produits avec des checkbox pour pouvoir supprimer un
produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude
























Avatar
Patrice
Non je parle de la variable dont le nom est "Selection"...

"Jean Claude" a écrit dans le message de
news: 47ff3046$0$886$
Bonjour Patrice

La variable IDproduit est créée par le DataKeyName=IDproduit du treeView

Donc quand je coche une case cela me donne la ligne (Row.RowIndex).value,
dans la procédure du bouton ibMaj_click (et cela donne donc l'IDproduit)
Donc si je met un point d'arret sur le bouton j'ai :

1°) Protected Sub ibMaj_Click ......................
Dim row As GridViewRow = Gdv.SelectedRow
Dim chk As CheckBox
For Each row In Me.Gdv.Rows
If row.RowType = DataControlRowType.DataRow Then
chk = CType(row.Cells(7). _
FindControl("chkSupprimer"), CheckBox)
If chk.Checked Then
' Suppression d'un article
Me.SupprimerArticle( Me.Gdv.DataKeys(row.RowIndex).Value)
End If
End If
Next
End Sub

Je coche la premiere ligne et donc
Me.Gdv.DataKeys(row.RowIndex).Value=ligne 0
ensuit cele passe sur la procédure Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String) ' si je mets ma
souris sur IDproduit cela me donne 11 qui l'IDproduit dans la base Access

If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End Sub

Et pourtant la ligne Selection.Remove n'est pas appelée
C'est bien cela que tu voulais ?
Jean Claude


"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Que donne un point d'arrêt ? Il est facile de vérifier si ContainsKey
retourne bien vrai et si la ligne Selection.Remove est bien appelée...

Pour l'instant, j'essayais de comprendre comment est créée la variable
Selection. Ne pas oublier qu'en ASP.NET la page est toujours recréée de 0
à chque fois et pour l'instant je soupçonnerais plutôt que la variable
Selection est recrée à chaque fois ce qui annulerait donc toute
suppression que tu aurais pu y faire lors de la précédente création de
page...

Donc comment est créée cette variable ?

--
Patrice


"Jean Claude" a écrit dans le message de
news: 47ff0984$0$884$
Bonjour Patrice

le problème c'est qu'elle ne détruit pas la ligne, dans cette procédure
:

Public Sub SupprimerArticle(ByVal IDproduit As String)
If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End sub
Et pourtant le Me.Gdv.DataKeys(row.RowIndex).Value) est bon il est égal
à la ligne 2, ce qui correspond au produit IDproduit=3, le If
............ saute le selection.remove

Cordialement
JClaude




"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Au temps pour moi je parlais de la HashTable "Selection". Je pense
qu'elle pourrait être recréée avec la ligne détruite lors du "postback"
qui suit le "postback" ayant permis de détruire la ligne...

--
Patrice

"Jean Claude" a écrit dans le message
de news: 47fe315b$0$874$
Bonjour Patrice

La sélection :
Je case une CkecBox du GridView, et je clic sur le bouton
J'ai une boucle For Next pour chercher la CheckBox cochée
ce qui me donne le rowIndex
ensuite Public Sub SupprimerArticle devrait supprimer la ligne

Jean Claude

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc si
la hastable selection est crée à partir de données présentes en base
elle sera recrée lors du prochain postback avec toutes ses données
même si une entrée y a été supprimée précédemment (mais ce n'est pas
la MEME ce'est juste la hastable qui avait été créée le coup
d'avant).


--
Patrice


"Jean Claude" a écrit dans le
message de news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access)
une liste de produits avec des checkbox pour pouvoir supprimer un
produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude




























Avatar
Jean Claude
Désolé mais je vois pas quelle variable, est-ce Selection.Remove(IDproduit)
?

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Non je parle de la variable dont le nom est "Selection"...

"Jean Claude" a écrit dans le message de
news: 47ff3046$0$886$
Bonjour Patrice

La variable IDproduit est créée par le DataKeyName=IDproduit du treeView

Donc quand je coche une case cela me donne la ligne (Row.RowIndex).value,
dans la procédure du bouton ibMaj_click (et cela donne donc l'IDproduit)
Donc si je met un point d'arret sur le bouton j'ai :

1°) Protected Sub ibMaj_Click ......................
Dim row As GridViewRow = Gdv.SelectedRow
Dim chk As CheckBox
For Each row In Me.Gdv.Rows
If row.RowType = DataControlRowType.DataRow Then
chk = CType(row.Cells(7). _
FindControl("chkSupprimer"), CheckBox)
If chk.Checked Then
' Suppression d'un article
Me.SupprimerArticle( Me.Gdv.DataKeys(row.RowIndex).Value)
End If
End If
Next
End Sub

Je coche la premiere ligne et donc
Me.Gdv.DataKeys(row.RowIndex).Value=ligne 0
ensuit cele passe sur la procédure Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String) ' si je mets ma
souris sur IDproduit cela me donne 11 qui l'IDproduit dans la base Access

If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End Sub

Et pourtant la ligne Selection.Remove n'est pas appelée
C'est bien cela que tu voulais ?
Jean Claude


"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Que donne un point d'arrêt ? Il est facile de vérifier si ContainsKey
retourne bien vrai et si la ligne Selection.Remove est bien appelée...

Pour l'instant, j'essayais de comprendre comment est créée la variable
Selection. Ne pas oublier qu'en ASP.NET la page est toujours recréée de
0 à chque fois et pour l'instant je soupçonnerais plutôt que la variable
Selection est recrée à chaque fois ce qui annulerait donc toute
suppression que tu aurais pu y faire lors de la précédente création de
page...

Donc comment est créée cette variable ?

--
Patrice


"Jean Claude" a écrit dans le message
de news: 47ff0984$0$884$
Bonjour Patrice

le problème c'est qu'elle ne détruit pas la ligne, dans cette procédure
:

Public Sub SupprimerArticle(ByVal IDproduit As String)
If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End sub
Et pourtant le Me.Gdv.DataKeys(row.RowIndex).Value) est bon il est égal
à la ligne 2, ce qui correspond au produit IDproduit=3, le If
............ saute le selection.remove

Cordialement
JClaude




"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %
Au temps pour moi je parlais de la HashTable "Selection". Je pense
qu'elle pourrait être recréée avec la ligne détruite lors du
"postback" qui suit le "postback" ayant permis de détruire la ligne...

--
Patrice

"Jean Claude" a écrit dans le message
de news: 47fe315b$0$874$
Bonjour Patrice

La sélection :
Je case une CkecBox du GridView, et je clic sur le bouton
J'ai une boucle For Next pour chercher la CheckBox cochée
ce qui me donne le rowIndex
ensuite Public Sub SupprimerArticle devrait supprimer la ligne

Jean Claude

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc si
la hastable selection est crée à partir de données présentes en base
elle sera recrée lors du prochain postback avec toutes ses données
même si une entrée y a été supprimée précédemment (mais ce n'est pas
la MEME ce'est juste la hastable qui avait été créée le coup
d'avant).


--
Patrice


"Jean Claude" a écrit dans le
message de news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access)
une liste de produits avec des checkbox pour pouvoir supprimer un
produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude
































Avatar
Patrice
Il s'agit de la variable déclarée via :

Private Selection As New Hashtable

Pour l'instant je ne vois pas comment cette variable est initialisée ce qui
pourrait expliquer les pbs rencontrés pour y supprimer une valeur..

--
Patrice

"Jean Claude" a écrit dans le message de
news: 47ff5790$0$878$
Désolé mais je vois pas quelle variable, est-ce
Selection.Remove(IDproduit) ?

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Non je parle de la variable dont le nom est "Selection"...

"Jean Claude" a écrit dans le message de
news: 47ff3046$0$886$
Bonjour Patrice

La variable IDproduit est créée par le DataKeyName=IDproduit du treeView

Donc quand je coche une case cela me donne la ligne
(Row.RowIndex).value, dans la procédure du bouton ibMaj_click (et cela
donne donc l'IDproduit)
Donc si je met un point d'arret sur le bouton j'ai :

1°) Protected Sub ibMaj_Click ......................
Dim row As GridViewRow = Gdv.SelectedRow
Dim chk As CheckBox
For Each row In Me.Gdv.Rows
If row.RowType = DataControlRowType.DataRow Then
chk = CType(row.Cells(7). _
FindControl("chkSupprimer"), CheckBox)
If chk.Checked Then
' Suppression d'un article
Me.SupprimerArticle( Me.Gdv.DataKeys(row.RowIndex).Value)
End If
End If
Next
End Sub

Je coche la premiere ligne et donc
Me.Gdv.DataKeys(row.RowIndex).Value=ligne 0
ensuit cele passe sur la procédure Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String) ' si je mets ma
souris sur IDproduit cela me donne 11 qui l'IDproduit dans la base
Access

If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End Sub

Et pourtant la ligne Selection.Remove n'est pas appelée
C'est bien cela que tu voulais ?
Jean Claude


"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Que donne un point d'arrêt ? Il est facile de vérifier si ContainsKey
retourne bien vrai et si la ligne Selection.Remove est bien appelée...

Pour l'instant, j'essayais de comprendre comment est créée la variable
Selection. Ne pas oublier qu'en ASP.NET la page est toujours recréée de
0 à chque fois et pour l'instant je soupçonnerais plutôt que la
variable Selection est recrée à chaque fois ce qui annulerait donc
toute suppression que tu aurais pu y faire lors de la précédente
création de page...

Donc comment est créée cette variable ?

--
Patrice


"Jean Claude" a écrit dans le message
de news: 47ff0984$0$884$
Bonjour Patrice

le problème c'est qu'elle ne détruit pas la ligne, dans cette
procédure :

Public Sub SupprimerArticle(ByVal IDproduit As String)
If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End sub
Et pourtant le Me.Gdv.DataKeys(row.RowIndex).Value) est bon il est
égal à la ligne 2, ce qui correspond au produit IDproduit=3, le If
............ saute le selection.remove

Cordialement
JClaude




"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %
Au temps pour moi je parlais de la HashTable "Selection". Je pense
qu'elle pourrait être recréée avec la ligne détruite lors du
"postback" qui suit le "postback" ayant permis de détruire la
ligne...

--
Patrice

"Jean Claude" a écrit dans le
message de news: 47fe315b$0$874$
Bonjour Patrice

La sélection :
Je case une CkecBox du GridView, et je clic sur le bouton
J'ai une boucle For Next pour chercher la CheckBox cochée
ce qui me donne le rowIndex
ensuite Public Sub SupprimerArticle devrait supprimer la ligne

Jean Claude

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc
si la hastable selection est crée à partir de données présentes en
base elle sera recrée lors du prochain postback avec toutes ses
données même si une entrée y a été supprimée précédemment (mais ce
n'est pas la MEME ce'est juste la hastable qui avait été créée le
coup d'avant).


--
Patrice


"Jean Claude" a écrit dans le
message de news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table Access)
une liste de produits avec des checkbox pour pouvoir supprimer un
produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude




































Avatar
Jean Claude
Bonjour Patrice

Effectivement cette variable n'est pas initialisée, et je ne vois pas
comment faire

Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
OOqIGg$
Il s'agit de la variable déclarée via :

Private Selection As New Hashtable

Pour l'instant je ne vois pas comment cette variable est initialisée ce
qui pourrait expliquer les pbs rencontrés pour y supprimer une valeur..

--
Patrice

"Jean Claude" a écrit dans le message de
news: 47ff5790$0$878$
Désolé mais je vois pas quelle variable, est-ce
Selection.Remove(IDproduit) ?

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%
Non je parle de la variable dont le nom est "Selection"...

"Jean Claude" a écrit dans le message
de news: 47ff3046$0$886$
Bonjour Patrice

La variable IDproduit est créée par le DataKeyName=IDproduit du
treeView

Donc quand je coche une case cela me donne la ligne
(Row.RowIndex).value, dans la procédure du bouton ibMaj_click (et cela
donne donc l'IDproduit)
Donc si je met un point d'arret sur le bouton j'ai :

1°) Protected Sub ibMaj_Click ......................
Dim row As GridViewRow = Gdv.SelectedRow
Dim chk As CheckBox
For Each row In Me.Gdv.Rows
If row.RowType = DataControlRowType.DataRow Then
chk = CType(row.Cells(7). _
FindControl("chkSupprimer"), CheckBox)
If chk.Checked Then
' Suppression d'un article
Me.SupprimerArticle( Me.Gdv.DataKeys(row.RowIndex).Value)
End If
End If
Next
End Sub

Je coche la premiere ligne et donc
Me.Gdv.DataKeys(row.RowIndex).Value=ligne 0
ensuit cele passe sur la procédure Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String) ' si je mets ma
souris sur IDproduit cela me donne 11 qui l'IDproduit dans la base
Access

If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End Sub

Et pourtant la ligne Selection.Remove n'est pas appelée
C'est bien cela que tu voulais ?
Jean Claude


"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %
Que donne un point d'arrêt ? Il est facile de vérifier si ContainsKey
retourne bien vrai et si la ligne Selection.Remove est bien appelée...

Pour l'instant, j'essayais de comprendre comment est créée la variable
Selection. Ne pas oublier qu'en ASP.NET la page est toujours recréée
de 0 à chque fois et pour l'instant je soupçonnerais plutôt que la
variable Selection est recrée à chaque fois ce qui annulerait donc
toute suppression que tu aurais pu y faire lors de la précédente
création de page...

Donc comment est créée cette variable ?

--
Patrice


"Jean Claude" a écrit dans le message
de news: 47ff0984$0$884$
Bonjour Patrice

le problème c'est qu'elle ne détruit pas la ligne, dans cette
procédure :

Public Sub SupprimerArticle(ByVal IDproduit As String)
If Selection.ContainsKey(IDproduit) Then
Selection.Remove(IDproduit)
End If
End sub
Et pourtant le Me.Gdv.DataKeys(row.RowIndex).Value) est bon il est
égal à la ligne 2, ce qui correspond au produit IDproduit=3, le If
............ saute le selection.remove

Cordialement
JClaude




"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %
Au temps pour moi je parlais de la HashTable "Selection". Je pense
qu'elle pourrait être recréée avec la ligne détruite lors du
"postback" qui suit le "postback" ayant permis de détruire la
ligne...

--
Patrice

"Jean Claude" a écrit dans le
message de news: 47fe315b$0$874$
Bonjour Patrice

La sélection :
Je case une CkecBox du GridView, et je clic sur le bouton
J'ai une boucle For Next pour chercher la CheckBox cochée
ce qui me donne le rowIndex
ensuite Public Sub SupprimerArticle devrait supprimer la ligne

Jean Claude

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
La sélection est créée où ?

Il faut bien comprendre que la page est recrée à chaque fois donc
si la hastable selection est crée à partir de données présentes en
base elle sera recrée lors du prochain postback avec toutes ses
données même si une entrée y a été supprimée précédemment (mais ce
n'est pas la MEME ce'est juste la hastable qui avait été créée le
coup d'avant).


--
Patrice


"Jean Claude" a écrit dans le
message de news: 47fddf59$6$897$
Bonjour



J'ai un GridView « gdv » qui m'affiche (requete sur table
Access) une liste de produits avec des checkbox pour pouvoir
supprimer un produit

J'ai ajouté DataKeyNames="IDproduit" '( nom du DataField)

J'ai un bouton pour supprimer les produits cochés (ibMaj_Click)

Dans mon code j'ai :

Private Selection As New Hashtable



Protected Sub ibMaj_Click( _

ByVal sender As Object, _

ByVal e As System.Web.UI.ImageClickEventArgs) _

Handles ibMaj.Click



Dim row As GridViewRow = Gdv.SelectedRow

Dim chk As CheckBox



For Each row In Me.Gdv.Rows

If row.RowType = DataControlRowType.DataRow Then

chk = CType(row.Cells(7). _

FindControl("chkSupprimer"), CheckBox)

If chk.Checked Then

' Suppression d'un article

Me.SupprimerArticle( _

Me.Gdv.DataKeys(row.RowIndex).Value)

End If

End If

Next

End Sub

' Supprimer un article du panier

Public Sub SupprimerArticle(ByVal IDproduit As String)

'IDProduit = Session("Lindex")

If Selection.ContainsKey(IDproduit) Then

Selection.Remove(IDproduit)

End If



End Sub



Quand je lance l'appli, je coche la case de la 3eme ligne du gdv

Avec un pas a pas j'ai :



Me.Gdv.DataKeys(row.RowIndex).Value)=2

ce qui correspond au produit IDproduit=3

le If Selection.ContainsKey(IDproduit) est égal à 3

néanmoins le Selection.Remove(IDproduit) ne se fait pas

Pouvez-vous me dire ou est l'erreur

Cordialement



JClaude








































1 2