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

LinkButon dans table

9 réponses
Avatar
JCM
Bonjour à tous

J'ai un probléme sur le code suivant, je cré par programmation une table
avec un LinkButton dans chaque cellule,

et je veux afficher une information quand on clik sur le LinkButton,

le code n'accepte pas le .OnCommand ou le .OnClick

cela me donne comme erreurSub OnCommand(.....) n'est pas accessible dans ce
contexte car il st Protected.... Que faire ?



' Genere les lignes et les cellules

Dim numrows As Integer = 21

Dim numcells As Integer = 3

Dim counter As Integer = 1

Dim j As Integer

For j = 0 To numrows - 1

Dim r As New TableRow()

Dim i As Integer

For i = 0 To numcells - 1

Dim c As New TableCell()

'création d'un LinkButton Web Server dans les cellules

Dim lb As New LinkButton()

lb.ForeColor = Color.White

lb.ID = "Lkb" & counter

lb.onCommand = "LinkButton_Command"

c.ApplyStyle(tableStyle)

c.Controls.Add(lb)

counter += 1

r.Cells.Add(c)

Next i

Table1.Rows.Add(r)

Next j



Sub LinkButton_Command(ByVal sender As Object, ByVal e As System.EventArgs)

Mon code ....





End Sub

Merci pour vos réponses

Cordialement

JCM

9 réponses

Avatar
Patrice
Et OnCommand n'est pas le nom d'une procédure comme cela peut arriver avec
VBA.

Voir plutôt AddHandler qui permet d'ajouter un gestionnaire d'évènement,
quelque chose comme (non testé) :

AddHandler lb.Command,AddressOf LinkButton_Command

--
Patrice

"JCM" a écrit dans le message de news:
%23WH6%
Bonjour à tous

J'ai un probléme sur le code suivant, je cré par programmation une table
avec un LinkButton dans chaque cellule,

et je veux afficher une information quand on clik sur le LinkButton,

le code n'accepte pas le .OnCommand ou le .OnClick

cela me donne comme erreurSub OnCommand(.....) n'est pas accessible dans
ce
contexte car il st Protected.... Que faire ?



' Genere les lignes et les cellules

Dim numrows As Integer = 21

Dim numcells As Integer = 3

Dim counter As Integer = 1

Dim j As Integer

For j = 0 To numrows - 1

Dim r As New TableRow()

Dim i As Integer

For i = 0 To numcells - 1

Dim c As New TableCell()

'création d'un LinkButton Web Server dans les cellules

Dim lb As New LinkButton()

lb.ForeColor = Color.White

lb.ID = "Lkb" & counter

lb.onCommand = "LinkButton_Command"

c.ApplyStyle(tableStyle)

c.Controls.Add(lb)

counter += 1

r.Cells.Add(c)

Next i

Table1.Rows.Add(r)

Next j



Sub LinkButton_Command(ByVal sender As Object, ByVal e As
System.EventArgs)

Mon code ....





End Sub

Merci pour vos réponses

Cordialement

JCM




Avatar
JCM
Bonjour patrice

et je le place où dans le code ?

JCM
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Et OnCommand n'est pas le nom d'une procédure comme cela peut arriver avec
VBA.

Voir plutôt AddHandler qui permet d'ajouter un gestionnaire d'évènement,
quelque chose comme (non testé) :

AddHandler lb.Command,AddressOf LinkButton_Command

--
Patrice

"JCM" a écrit dans le message de news:
%23WH6%
> Bonjour à tous
>
> J'ai un probléme sur le code suivant, je cré par programmation une table
> avec un LinkButton dans chaque cellule,
>
> et je veux afficher une information quand on clik sur le LinkButton,
>
> le code n'accepte pas le .OnCommand ou le .OnClick
>
> cela me donne comme erreurSub OnCommand(.....) n'est pas accessible dans
> ce
> contexte car il st Protected.... Que faire ?
>
>
>
> ' Genere les lignes et les cellules
>
> Dim numrows As Integer = 21
>
> Dim numcells As Integer = 3
>
> Dim counter As Integer = 1
>
> Dim j As Integer
>
> For j = 0 To numrows - 1
>
> Dim r As New TableRow()
>
> Dim i As Integer
>
> For i = 0 To numcells - 1
>
> Dim c As New TableCell()
>
> 'création d'un LinkButton Web Server dans les cellules
>
> Dim lb As New LinkButton()
>
> lb.ForeColor = Color.White
>
> lb.ID = "Lkb" & counter
>
> lb.onCommand = "LinkButton_Command"
>
> c.ApplyStyle(tableStyle)
>
> c.Controls.Add(lb)
>
> counter += 1
>
> r.Cells.Add(c)
>
> Next i
>
> Table1.Rows.Add(r)
>
> Next j
>
>
>
> Sub LinkButton_Command(ByVal sender As Object, ByVal e As
> System.EventArgs)
>
> Mon code ....
>
>
>
>
>
> End Sub
>
> Merci pour vos réponses
>
> Cordialement
>
> JCM
>
>




Avatar
JCM
Patrice

j'ai remplacé la ligne :
lb.onCommand = "LinkButton_Command" par
AddHandler lb.Command,AddressOf LinkButton_Command

et LinkButton_Command est surligné avec le message 'Public Sub
LinkButton_Command(......) n'a pas la meme signature que le délégué
'Délégate Sub CommandEventHandler(........)

j'ai remplacé la ligne :
Sub LinkButton_Command(ByVal sender As Object, ByVal e As System.EventArgs)
par
Public Sub LinkButton_Command(ByVal EventNumber As Integer)

Peux-tu me dire ou est le problème
Merci pour ta réponse
Cordialement
JCM

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Et OnCommand n'est pas le nom d'une procédure comme cela peut arriver avec
VBA.

Voir plutôt AddHandler qui permet d'ajouter un gestionnaire d'évènement,
quelque chose comme (non testé) :

AddHandler lb.Command,AddressOf LinkButton_Command

--
Patrice

"JCM" a écrit dans le message de news:
%23WH6%
> Bonjour à tous
>
> J'ai un probléme sur le code suivant, je cré par programmation une table
> avec un LinkButton dans chaque cellule,
>
> et je veux afficher une information quand on clik sur le LinkButton,
>
> le code n'accepte pas le .OnCommand ou le .OnClick
>
> cela me donne comme erreurSub OnCommand(.....) n'est pas accessible dans
> ce
> contexte car il st Protected.... Que faire ?
>
>
>
> ' Genere les lignes et les cellules
>
> Dim numrows As Integer = 21
>
> Dim numcells As Integer = 3
>
> Dim counter As Integer = 1
>
> Dim j As Integer
>
> For j = 0 To numrows - 1
>
> Dim r As New TableRow()
>
> Dim i As Integer
>
> For i = 0 To numcells - 1
>
> Dim c As New TableCell()
>
> 'création d'un LinkButton Web Server dans les cellules
>
> Dim lb As New LinkButton()
>
> lb.ForeColor = Color.White
>
> lb.ID = "Lkb" & counter
>
> lb.onCommand = "LinkButton_Command"
>
> c.ApplyStyle(tableStyle)
>
> c.Controls.Add(lb)
>
> counter += 1
>
> r.Cells.Add(c)
>
> Next i
>
> Table1.Rows.Add(r)
>
> Next j
>
>
>
> Sub LinkButton_Command(ByVal sender As Object, ByVal e As
> System.EventArgs)
>
> Mon code ....
>
>
>
>
>
> End Sub
>
> Merci pour vos réponses
>
> Cordialement
>
> JCM
>
>




Avatar
Patrice
De mémoire le message doit préciser la signature (liste des arguments) des
deux fonctions qui doivent donc correspondre. Il s'agit de :
Private Sub LinkButton1_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)



--

Patrice


"JCM" a écrit dans le message de news:
usg7A%
Patrice

j'ai remplacé la ligne :
lb.onCommand = "LinkButton_Command" par
AddHandler lb.Command,AddressOf LinkButton_Command

et LinkButton_Command est surligné avec le message 'Public Sub
LinkButton_Command(......) n'a pas la meme signature que le délégué
'Délégate Sub CommandEventHandler(........)

j'ai remplacé la ligne :
Sub LinkButton_Command(ByVal sender As Object, ByVal e As
System.EventArgs)
par
Public Sub LinkButton_Command(ByVal EventNumber As Integer)

Peux-tu me dire ou est le problème
Merci pour ta réponse
Cordialement
JCM

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Et OnCommand n'est pas le nom d'une procédure comme cela peut arriver
avec
VBA.

Voir plutôt AddHandler qui permet d'ajouter un gestionnaire d'évènement,
quelque chose comme (non testé) :

AddHandler lb.Command,AddressOf LinkButton_Command

--
Patrice

"JCM" a écrit dans le message de news:
%23WH6%
> Bonjour à tous
>
> J'ai un probléme sur le code suivant, je cré par programmation une
> table
> avec un LinkButton dans chaque cellule,
>
> et je veux afficher une information quand on clik sur le LinkButton,
>
> le code n'accepte pas le .OnCommand ou le .OnClick
>
> cela me donne comme erreurSub OnCommand(.....) n'est pas accessible
> dans
> ce
> contexte car il st Protected.... Que faire ?
>
>
>
> ' Genere les lignes et les cellules
>
> Dim numrows As Integer = 21
>
> Dim numcells As Integer = 3
>
> Dim counter As Integer = 1
>
> Dim j As Integer
>
> For j = 0 To numrows - 1
>
> Dim r As New TableRow()
>
> Dim i As Integer
>
> For i = 0 To numcells - 1
>
> Dim c As New TableCell()
>
> 'création d'un LinkButton Web Server dans les cellules
>
> Dim lb As New LinkButton()
>
> lb.ForeColor = Color.White
>
> lb.ID = "Lkb" & counter
>
> lb.onCommand = "LinkButton_Command"
>
> c.ApplyStyle(tableStyle)
>
> c.Controls.Add(lb)
>
> counter += 1
>
> r.Cells.Add(c)
>
> Next i
>
> Table1.Rows.Add(r)
>
> Next j
>
>
>
> Sub LinkButton_Command(ByVal sender As Object, ByVal e As
> System.EventArgs)
>
> Mon code ....
>
>
>
>
>
> End Sub
>
> Merci pour vos réponses
>
> Cordialement
>
> JCM
>
>








Avatar
JCM
Merci Patrice

Cela fonctionne, mais j'ai un autre probléme, dans la commande Private Sub
LinkButton1_Command....
je veux récupérer le lb.text

quand j'écris Session("Choix")=lb.text
j'ai le message : Le nom 'lb' n'est pas déclaré

Vois-tu l'erreur ?

Merci pour ta réponse
JCM
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
De mémoire le message doit préciser la signature (liste des arguments) des
deux fonctions qui doivent donc correspondre. Il s'agit de :
Private Sub LinkButton1_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)



--

Patrice


"JCM" a écrit dans le message de news:
usg7A%
> Patrice
>
> j'ai remplacé la ligne :
> lb.onCommand = "LinkButton_Command" par
> AddHandler lb.Command,AddressOf LinkButton_Command
>
> et LinkButton_Command est surligné avec le message 'Public Sub
> LinkButton_Command(......) n'a pas la meme signature que le délégué
> 'Délégate Sub CommandEventHandler(........)
>
> j'ai remplacé la ligne :
> Sub LinkButton_Command(ByVal sender As Object, ByVal e As
> System.EventArgs)
> par
> Public Sub LinkButton_Command(ByVal EventNumber As Integer)
>
> Peux-tu me dire ou est le problème
> Merci pour ta réponse
> Cordialement
> JCM
>
> "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
> news:
>> Et OnCommand n'est pas le nom d'une procédure comme cela peut arriver
>> avec
>> VBA.
>>
>> Voir plutôt AddHandler qui permet d'ajouter un gestionnaire


d'évènement,
>> quelque chose comme (non testé) :
>>
>> AddHandler lb.Command,AddressOf LinkButton_Command
>>
>> --
>> Patrice
>>
>> "JCM" a écrit dans le message de news:
>> %23WH6%
>> > Bonjour à tous
>> >
>> > J'ai un probléme sur le code suivant, je cré par programmation une
>> > table
>> > avec un LinkButton dans chaque cellule,
>> >
>> > et je veux afficher une information quand on clik sur le LinkButton,
>> >
>> > le code n'accepte pas le .OnCommand ou le .OnClick
>> >
>> > cela me donne comme erreurSub OnCommand(.....) n'est pas accessible
>> > dans
>> > ce
>> > contexte car il st Protected.... Que faire ?
>> >
>> >
>> >
>> > ' Genere les lignes et les cellules
>> >
>> > Dim numrows As Integer = 21
>> >
>> > Dim numcells As Integer = 3
>> >
>> > Dim counter As Integer = 1
>> >
>> > Dim j As Integer
>> >
>> > For j = 0 To numrows - 1
>> >
>> > Dim r As New TableRow()
>> >
>> > Dim i As Integer
>> >
>> > For i = 0 To numcells - 1
>> >
>> > Dim c As New TableCell()
>> >
>> > 'création d'un LinkButton Web Server dans les cellules
>> >
>> > Dim lb As New LinkButton()
>> >
>> > lb.ForeColor = Color.White
>> >
>> > lb.ID = "Lkb" & counter
>> >
>> > lb.onCommand = "LinkButton_Command"
>> >
>> > c.ApplyStyle(tableStyle)
>> >
>> > c.Controls.Add(lb)
>> >
>> > counter += 1
>> >
>> > r.Cells.Add(c)
>> >
>> > Next i
>> >
>> > Table1.Rows.Add(r)
>> >
>> > Next j
>> >
>> >
>> >
>> > Sub LinkButton_Command(ByVal sender As Object, ByVal e As
>> > System.EventArgs)
>> >
>> > Mon code ....
>> >
>> >
>> >
>> >
>> >
>> > End Sub
>> >
>> > Merci pour vos réponses
>> >
>> > Cordialement
>> >
>> > JCM
>> >
>> >
>>
>>
>
>




Avatar
Patrice
La variable lb est déclarée localement dans ta boucle et de toute façon elle
ne correspondrait qu'au dernier LinkButton que tu as créé.

Par contre l'argument sender est justement l'objet qui est à la source de
l'évenement.
Donc un Dim lb as LinkButton=DirectCast(sender,LinkButton) en première ligne
de ta gestion d'évènement permettra de savoir quel est l'objet LinkButton
qui est à la source de l'évènement.

Une autre approche est de remplir la propriété CommandArgument du LinkButton
ce qui te permettra de le récupérer directement dans le gestionnaire
d'évènements via e.CommandArgument.

--
Patrice

"JCM" a écrit dans le message de news:

Merci Patrice

Cela fonctionne, mais j'ai un autre probléme, dans la commande Private Sub
LinkButton1_Command....
je veux récupérer le lb.text

quand j'écris Session("Choix")=lb.text
j'ai le message : Le nom 'lb' n'est pas déclaré

Vois-tu l'erreur ?

Merci pour ta réponse
JCM
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
De mémoire le message doit préciser la signature (liste des arguments)
des
deux fonctions qui doivent donc correspondre. Il s'agit de :
Private Sub LinkButton1_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)



--

Patrice


"JCM" a écrit dans le message de news:
usg7A%
> Patrice
>
> j'ai remplacé la ligne :
> lb.onCommand = "LinkButton_Command" par
> AddHandler lb.Command,AddressOf LinkButton_Command
>
> et LinkButton_Command est surligné avec le message 'Public Sub
> LinkButton_Command(......) n'a pas la meme signature que le délégué
> 'Délégate Sub CommandEventHandler(........)
>
> j'ai remplacé la ligne :
> Sub LinkButton_Command(ByVal sender As Object, ByVal e As
> System.EventArgs)
> par
> Public Sub LinkButton_Command(ByVal EventNumber As Integer)
>
> Peux-tu me dire ou est le problème
> Merci pour ta réponse
> Cordialement
> JCM
>
> "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
> news:
>> Et OnCommand n'est pas le nom d'une procédure comme cela peut arriver
>> avec
>> VBA.
>>
>> Voir plutôt AddHandler qui permet d'ajouter un gestionnaire


d'évènement,
>> quelque chose comme (non testé) :
>>
>> AddHandler lb.Command,AddressOf LinkButton_Command
>>
>> --
>> Patrice
>>
>> "JCM" a écrit dans le message de
>> news:
>> %23WH6%
>> > Bonjour à tous
>> >
>> > J'ai un probléme sur le code suivant, je cré par programmation une
>> > table
>> > avec un LinkButton dans chaque cellule,
>> >
>> > et je veux afficher une information quand on clik sur le LinkButton,
>> >
>> > le code n'accepte pas le .OnCommand ou le .OnClick
>> >
>> > cela me donne comme erreurSub OnCommand(.....) n'est pas accessible
>> > dans
>> > ce
>> > contexte car il st Protected.... Que faire ?
>> >
>> >
>> >
>> > ' Genere les lignes et les cellules
>> >
>> > Dim numrows As Integer = 21
>> >
>> > Dim numcells As Integer = 3
>> >
>> > Dim counter As Integer = 1
>> >
>> > Dim j As Integer
>> >
>> > For j = 0 To numrows - 1
>> >
>> > Dim r As New TableRow()
>> >
>> > Dim i As Integer
>> >
>> > For i = 0 To numcells - 1
>> >
>> > Dim c As New TableCell()
>> >
>> > 'création d'un LinkButton Web Server dans les cellules
>> >
>> > Dim lb As New LinkButton()
>> >
>> > lb.ForeColor = Color.White
>> >
>> > lb.ID = "Lkb" & counter
>> >
>> > lb.onCommand = "LinkButton_Command"
>> >
>> > c.ApplyStyle(tableStyle)
>> >
>> > c.Controls.Add(lb)
>> >
>> > counter += 1
>> >
>> > r.Cells.Add(c)
>> >
>> > Next i
>> >
>> > Table1.Rows.Add(r)
>> >
>> > Next j
>> >
>> >
>> >
>> > Sub LinkButton_Command(ByVal sender As Object, ByVal e As
>> > System.EventArgs)
>> >
>> > Mon code ....
>> >
>> >
>> >
>> >
>> >
>> > End Sub
>> >
>> > Merci pour vos réponses
>> >
>> > Cordialement
>> >
>> > JCM
>> >
>> >
>>
>>
>
>








Avatar
JCM
Merci Patrice pour ton aide

Cela fonctionne, c'est super
J'avais posé une autre question sur le Newgroup (qui a disparue) depuis

Je voudrais faire une requête aléatoire sur une base Access pour afficher
des données dans un GridView
avec un ordre d'affichage différent (sur un champs) à chaque requête

Peux-tu m'aider ?

Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
La variable lb est déclarée localement dans ta boucle et de toute façon


elle
ne correspondrait qu'au dernier LinkButton que tu as créé.

Par contre l'argument sender est justement l'objet qui est à la source de
l'évenement.
Donc un Dim lb as LinkButton=DirectCast(sender,LinkButton) en première


ligne
de ta gestion d'évènement permettra de savoir quel est l'objet LinkButton
qui est à la source de l'évènement.

Une autre approche est de remplir la propriété CommandArgument du


LinkButton
ce qui te permettra de le récupérer directement dans le gestionnaire
d'évènements via e.CommandArgument.

--
Patrice

"JCM" a écrit dans le message de news:

> Merci Patrice
>
> Cela fonctionne, mais j'ai un autre probléme, dans la commande Private


Sub
> LinkButton1_Command....
> je veux récupérer le lb.text
>
> quand j'écris Session("Choix")=lb.text
> j'ai le message : Le nom 'lb' n'est pas déclaré
>
> Vois-tu l'erreur ?
>
> Merci pour ta réponse
> JCM
> "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
> news:
>> De mémoire le message doit préciser la signature (liste des arguments)
>> des
>> deux fonctions qui doivent donc correspondre. Il s'agit de :
>> Private Sub LinkButton1_Command(ByVal sender As Object, ByVal e As
>> System.Web.UI.WebControls.CommandEventArgs)
>>
>>
>>
>> --
>>
>> Patrice
>>
>>
>> "JCM" a écrit dans le message de news:
>> usg7A%
>> > Patrice
>> >
>> > j'ai remplacé la ligne :
>> > lb.onCommand = "LinkButton_Command" par
>> > AddHandler lb.Command,AddressOf LinkButton_Command
>> >
>> > et LinkButton_Command est surligné avec le message 'Public Sub
>> > LinkButton_Command(......) n'a pas la meme signature que le délégué
>> > 'Délégate Sub CommandEventHandler(........)
>> >
>> > j'ai remplacé la ligne :
>> > Sub LinkButton_Command(ByVal sender As Object, ByVal e As
>> > System.EventArgs)
>> > par
>> > Public Sub LinkButton_Command(ByVal EventNumber As Integer)
>> >
>> > Peux-tu me dire ou est le problème
>> > Merci pour ta réponse
>> > Cordialement
>> > JCM
>> >
>> > "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
>> > news:
>> >> Et OnCommand n'est pas le nom d'une procédure comme cela peut


arriver
>> >> avec
>> >> VBA.
>> >>
>> >> Voir plutôt AddHandler qui permet d'ajouter un gestionnaire
> d'évènement,
>> >> quelque chose comme (non testé) :
>> >>
>> >> AddHandler lb.Command,AddressOf LinkButton_Command
>> >>
>> >> --
>> >> Patrice
>> >>
>> >> "JCM" a écrit dans le message de
>> >> news:
>> >> %23WH6%
>> >> > Bonjour à tous
>> >> >
>> >> > J'ai un probléme sur le code suivant, je cré par programmation une
>> >> > table
>> >> > avec un LinkButton dans chaque cellule,
>> >> >
>> >> > et je veux afficher une information quand on clik sur le


LinkButton,
>> >> >
>> >> > le code n'accepte pas le .OnCommand ou le .OnClick
>> >> >
>> >> > cela me donne comme erreurSub OnCommand(.....) n'est pas


accessible
>> >> > dans
>> >> > ce
>> >> > contexte car il st Protected.... Que faire ?
>> >> >
>> >> >
>> >> >
>> >> > ' Genere les lignes et les cellules
>> >> >
>> >> > Dim numrows As Integer = 21
>> >> >
>> >> > Dim numcells As Integer = 3
>> >> >
>> >> > Dim counter As Integer = 1
>> >> >
>> >> > Dim j As Integer
>> >> >
>> >> > For j = 0 To numrows - 1
>> >> >
>> >> > Dim r As New TableRow()
>> >> >
>> >> > Dim i As Integer
>> >> >
>> >> > For i = 0 To numcells - 1
>> >> >
>> >> > Dim c As New TableCell()
>> >> >
>> >> > 'création d'un LinkButton Web Server dans les cellules
>> >> >
>> >> > Dim lb As New LinkButton()
>> >> >
>> >> > lb.ForeColor = Color.White
>> >> >
>> >> > lb.ID = "Lkb" & counter
>> >> >
>> >> > lb.onCommand = "LinkButton_Command"
>> >> >
>> >> > c.ApplyStyle(tableStyle)
>> >> >
>> >> > c.Controls.Add(lb)
>> >> >
>> >> > counter += 1
>> >> >
>> >> > r.Cells.Add(c)
>> >> >
>> >> > Next i
>> >> >
>> >> > Table1.Rows.Add(r)
>> >> >
>> >> > Next j
>> >> >
>> >> >
>> >> >
>> >> > Sub LinkButton_Command(ByVal sender As Object, ByVal e As
>> >> > System.EventArgs)
>> >> >
>> >> > Mon code ....
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > End Sub
>> >> >
>> >> > Merci pour vos réponses
>> >> >
>> >> > Cordialement
>> >> >
>> >> > JCM
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>




Avatar
Patrice
Je sais que sur SQL Server l'astuce est de trier par "NewID". Je ne sais pas
si Access à l'équivalent mais en gros le principe est de trouver une
fonction qui retourne une valeur différente non ordonnée pour chaque ligne
(ou peut-être une fonction style rnd mais je crois qu'elle risque de
retourner la même valeur pour chaque ligne).

Sinon essaie peut-être un forum Access...

--

Patrice


"JCM" a écrit dans le message de news:
%
Merci Patrice pour ton aide

Cela fonctionne, c'est super
J'avais posé une autre question sur le Newgroup (qui a disparue) depuis

Je voudrais faire une requête aléatoire sur une base Access pour afficher
des données dans un GridView
avec un ordre d'affichage différent (sur un champs) à chaque requête

Peux-tu m'aider ?

Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
La variable lb est déclarée localement dans ta boucle et de toute façon


elle
ne correspondrait qu'au dernier LinkButton que tu as créé.

Par contre l'argument sender est justement l'objet qui est à la source de
l'évenement.
Donc un Dim lb as LinkButton=DirectCast(sender,LinkButton) en première


ligne
de ta gestion d'évènement permettra de savoir quel est l'objet LinkButton
qui est à la source de l'évènement.

Une autre approche est de remplir la propriété CommandArgument du


LinkButton
ce qui te permettra de le récupérer directement dans le gestionnaire
d'évènements via e.CommandArgument.

--
Patrice

"JCM" a écrit dans le message de news:

> Merci Patrice
>
> Cela fonctionne, mais j'ai un autre probléme, dans la commande Private


Sub
> LinkButton1_Command....
> je veux récupérer le lb.text
>
> quand j'écris Session("Choix")=lb.text
> j'ai le message : Le nom 'lb' n'est pas déclaré
>
> Vois-tu l'erreur ?
>
> Merci pour ta réponse
> JCM
> "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
> news:
>> De mémoire le message doit préciser la signature (liste des arguments)
>> des
>> deux fonctions qui doivent donc correspondre. Il s'agit de :
>> Private Sub LinkButton1_Command(ByVal sender As Object, ByVal e As
>> System.Web.UI.WebControls.CommandEventArgs)
>>
>>
>>
>> --
>>
>> Patrice
>>
>>
>> "JCM" a écrit dans le message de
>> news:
>> usg7A%
>> > Patrice
>> >
>> > j'ai remplacé la ligne :
>> > lb.onCommand = "LinkButton_Command" par
>> > AddHandler lb.Command,AddressOf LinkButton_Command
>> >
>> > et LinkButton_Command est surligné avec le message 'Public Sub
>> > LinkButton_Command(......) n'a pas la meme signature que le délégué
>> > 'Délégate Sub CommandEventHandler(........)
>> >
>> > j'ai remplacé la ligne :
>> > Sub LinkButton_Command(ByVal sender As Object, ByVal e As
>> > System.EventArgs)
>> > par
>> > Public Sub LinkButton_Command(ByVal EventNumber As Integer)
>> >
>> > Peux-tu me dire ou est le problème
>> > Merci pour ta réponse
>> > Cordialement
>> > JCM
>> >
>> > "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
>> > news:
>> >> Et OnCommand n'est pas le nom d'une procédure comme cela peut


arriver
>> >> avec
>> >> VBA.
>> >>
>> >> Voir plutôt AddHandler qui permet d'ajouter un gestionnaire
> d'évènement,
>> >> quelque chose comme (non testé) :
>> >>
>> >> AddHandler lb.Command,AddressOf LinkButton_Command
>> >>
>> >> --
>> >> Patrice
>> >>
>> >> "JCM" a écrit dans le message de
>> >> news:
>> >> %23WH6%
>> >> > Bonjour à tous
>> >> >
>> >> > J'ai un probléme sur le code suivant, je cré par programmation
>> >> > une
>> >> > table
>> >> > avec un LinkButton dans chaque cellule,
>> >> >
>> >> > et je veux afficher une information quand on clik sur le


LinkButton,
>> >> >
>> >> > le code n'accepte pas le .OnCommand ou le .OnClick
>> >> >
>> >> > cela me donne comme erreurSub OnCommand(.....) n'est pas


accessible
>> >> > dans
>> >> > ce
>> >> > contexte car il st Protected.... Que faire ?
>> >> >
>> >> >
>> >> >
>> >> > ' Genere les lignes et les cellules
>> >> >
>> >> > Dim numrows As Integer = 21
>> >> >
>> >> > Dim numcells As Integer = 3
>> >> >
>> >> > Dim counter As Integer = 1
>> >> >
>> >> > Dim j As Integer
>> >> >
>> >> > For j = 0 To numrows - 1
>> >> >
>> >> > Dim r As New TableRow()
>> >> >
>> >> > Dim i As Integer
>> >> >
>> >> > For i = 0 To numcells - 1
>> >> >
>> >> > Dim c As New TableCell()
>> >> >
>> >> > 'création d'un LinkButton Web Server dans les cellules
>> >> >
>> >> > Dim lb As New LinkButton()
>> >> >
>> >> > lb.ForeColor = Color.White
>> >> >
>> >> > lb.ID = "Lkb" & counter
>> >> >
>> >> > lb.onCommand = "LinkButton_Command"
>> >> >
>> >> > c.ApplyStyle(tableStyle)
>> >> >
>> >> > c.Controls.Add(lb)
>> >> >
>> >> > counter += 1
>> >> >
>> >> > r.Cells.Add(c)
>> >> >
>> >> > Next i
>> >> >
>> >> > Table1.Rows.Add(r)
>> >> >
>> >> > Next j
>> >> >
>> >> >
>> >> >
>> >> > Sub LinkButton_Command(ByVal sender As Object, ByVal e As
>> >> > System.EventArgs)
>> >> >
>> >> > Mon code ....
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > End Sub
>> >> >
>> >> > Merci pour vos réponses
>> >> >
>> >> > Cordialement
>> >> >
>> >> > JCM
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>








Avatar
JCM
Merci pour ton aide Patrice
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Je sais que sur SQL Server l'astuce est de trier par "NewID". Je ne sais


pas
si Access à l'équivalent mais en gros le principe est de trouver une
fonction qui retourne une valeur différente non ordonnée pour chaque ligne
(ou peut-être une fonction style rnd mais je crois qu'elle risque de
retourner la même valeur pour chaque ligne).

Sinon essaie peut-être un forum Access...

--

Patrice


"JCM" a écrit dans le message de news:
%
> Merci Patrice pour ton aide
>
> Cela fonctionne, c'est super
> J'avais posé une autre question sur le Newgroup (qui a disparue) depuis
>
> Je voudrais faire une requête aléatoire sur une base Access pour


afficher
> des données dans un GridView
> avec un ordre d'affichage différent (sur un champs) à chaque requête
>
> Peux-tu m'aider ?
>
> Cordialement
> Jean Claude
> "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
> news:
>> La variable lb est déclarée localement dans ta boucle et de toute façon
> elle
>> ne correspondrait qu'au dernier LinkButton que tu as créé.
>>
>> Par contre l'argument sender est justement l'objet qui est à la source


de
>> l'évenement.
>> Donc un Dim lb as LinkButton=DirectCast(sender,LinkButton) en première
> ligne
>> de ta gestion d'évènement permettra de savoir quel est l'objet


LinkButton
>> qui est à la source de l'évènement.
>>
>> Une autre approche est de remplir la propriété CommandArgument du
> LinkButton
>> ce qui te permettra de le récupérer directement dans le gestionnaire
>> d'évènements via e.CommandArgument.
>>
>> --
>> Patrice
>>
>> "JCM" a écrit dans le message de news:
>>
>> > Merci Patrice
>> >
>> > Cela fonctionne, mais j'ai un autre probléme, dans la commande


Private
> Sub
>> > LinkButton1_Command....
>> > je veux récupérer le lb.text
>> >
>> > quand j'écris Session("Choix")=lb.text
>> > j'ai le message : Le nom 'lb' n'est pas déclaré
>> >
>> > Vois-tu l'erreur ?
>> >
>> > Merci pour ta réponse
>> > JCM
>> > "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
>> > news:
>> >> De mémoire le message doit préciser la signature (liste des


arguments)
>> >> des
>> >> deux fonctions qui doivent donc correspondre. Il s'agit de :
>> >> Private Sub LinkButton1_Command(ByVal sender As Object, ByVal e As
>> >> System.Web.UI.WebControls.CommandEventArgs)
>> >>
>> >>
>> >>
>> >> --
>> >>
>> >> Patrice
>> >>
>> >>
>> >> "JCM" a écrit dans le message de
>> >> news:
>> >> usg7A%
>> >> > Patrice
>> >> >
>> >> > j'ai remplacé la ligne :
>> >> > lb.onCommand = "LinkButton_Command" par
>> >> > AddHandler lb.Command,AddressOf LinkButton_Command
>> >> >
>> >> > et LinkButton_Command est surligné avec le message 'Public Sub
>> >> > LinkButton_Command(......) n'a pas la meme signature que le


délégué
>> >> > 'Délégate Sub CommandEventHandler(........)
>> >> >
>> >> > j'ai remplacé la ligne :
>> >> > Sub LinkButton_Command(ByVal sender As Object, ByVal e As
>> >> > System.EventArgs)
>> >> > par
>> >> > Public Sub LinkButton_Command(ByVal EventNumber As Integer)
>> >> >
>> >> > Peux-tu me dire ou est le problème
>> >> > Merci pour ta réponse
>> >> > Cordialement
>> >> > JCM
>> >> >
>> >> > "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
>> >> > news:
>> >> >> Et OnCommand n'est pas le nom d'une procédure comme cela peut
> arriver
>> >> >> avec
>> >> >> VBA.
>> >> >>
>> >> >> Voir plutôt AddHandler qui permet d'ajouter un gestionnaire
>> > d'évènement,
>> >> >> quelque chose comme (non testé) :
>> >> >>
>> >> >> AddHandler lb.Command,AddressOf LinkButton_Command
>> >> >>
>> >> >> --
>> >> >> Patrice
>> >> >>
>> >> >> "JCM" a écrit dans le message de
>> >> >> news:
>> >> >> %23WH6%
>> >> >> > Bonjour à tous
>> >> >> >
>> >> >> > J'ai un probléme sur le code suivant, je cré par programmation
>> >> >> > une
>> >> >> > table
>> >> >> > avec un LinkButton dans chaque cellule,
>> >> >> >
>> >> >> > et je veux afficher une information quand on clik sur le
> LinkButton,
>> >> >> >
>> >> >> > le code n'accepte pas le .OnCommand ou le .OnClick
>> >> >> >
>> >> >> > cela me donne comme erreurSub OnCommand(.....) n'est pas
> accessible
>> >> >> > dans
>> >> >> > ce
>> >> >> > contexte car il st Protected.... Que faire ?
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > ' Genere les lignes et les cellules
>> >> >> >
>> >> >> > Dim numrows As Integer = 21
>> >> >> >
>> >> >> > Dim numcells As Integer = 3
>> >> >> >
>> >> >> > Dim counter As Integer = 1
>> >> >> >
>> >> >> > Dim j As Integer
>> >> >> >
>> >> >> > For j = 0 To numrows - 1
>> >> >> >
>> >> >> > Dim r As New TableRow()
>> >> >> >
>> >> >> > Dim i As Integer
>> >> >> >
>> >> >> > For i = 0 To numcells - 1
>> >> >> >
>> >> >> > Dim c As New TableCell()
>> >> >> >
>> >> >> > 'création d'un LinkButton Web Server dans les cellules
>> >> >> >
>> >> >> > Dim lb As New LinkButton()
>> >> >> >
>> >> >> > lb.ForeColor = Color.White
>> >> >> >
>> >> >> > lb.ID = "Lkb" & counter
>> >> >> >
>> >> >> > lb.onCommand = "LinkButton_Command"
>> >> >> >
>> >> >> > c.ApplyStyle(tableStyle)
>> >> >> >
>> >> >> > c.Controls.Add(lb)
>> >> >> >
>> >> >> > counter += 1
>> >> >> >
>> >> >> > r.Cells.Add(c)
>> >> >> >
>> >> >> > Next i
>> >> >> >
>> >> >> > Table1.Rows.Add(r)
>> >> >> >
>> >> >> > Next j
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > Sub LinkButton_Command(ByVal sender As Object, ByVal e As
>> >> >> > System.EventArgs)
>> >> >> >
>> >> >> > Mon code ....
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > End Sub
>> >> >> >
>> >> >> > Merci pour vos réponses
>> >> >> >
>> >> >> > Cordialement
>> >> >> >
>> >> >> > JCM
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>