Cookiem
Messages postés46Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention17 juillet 2007
-
1 févr. 2005 à 16:01
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
3 févr. 2005 à 12:18
Bonjours.
Alors j'ai créé un tableau, je le remplis en fonction d'un select.
Dans chaque ligne je met diverse chose, label, textbox, bouton.
J'ai réussi a générer un événement handles lorsqu'on click sur le bouton (en m'inspirant d'une réponse de cyril/jesusonline à une autre question :p).
J'arrive a récupérer la ligne du tableau sur laquel le bouton à été cliquer.
(vias l'id du bouton)
Jusque la ca va ... sauf que même avec le numéros de ligne et le numéros de cellule,
(j'ai qu'une cellule par ligne ca va il a pas été trop dure à trouver :p).
J'arrive pas à accéder au controle (textbox, label).
Je pensais que ca marchais un peu comme les data set.
(dataset.tables("nom_table").rows(index).("nom") )
Mais ca a pas l'air.
Quelqu'un aurait une astuce pour accéder à mes controle?
Voici mon code si ca vous intéresse:
(page load)
(...)
Dim n, m
As
Integer
n = 0
m = ds.Tables("ajout").Rows().Count
Do
While n < m
Dim cellule
As
New TableCell
Dim ligne
As
New TableRow
Dim label1
As
New Label
label1.Text = "test"
cellule.Controls.Add(label1)
cellule.Controls.Add(label2)
If (ds.Tables("ajout").Rows(n)("Statut") = "2a"
And Session("niveau") = 2)
Or (ds.Tables("ajout").Rows(n)("Statut") = "1a"
And Session("niveau") = 1)
Then
Dim tbox =
New TextBox
tbox.Visible =
False
tbox.Text = "Rentrer un commentaire ici."
cellule.Controls.Add(tbox)
Dim bouton
As
New Button
Dim chaine_bouton
As
String
chaine_bouton = n
chaine_bouton = "bouton" + chaine_bouton
bouton.ID = chaine_bouton
bouton.Text = "Editer"
AddHandler bouton.Click,
AddressOf bouton_click
cellule.Controls.Add(bouton)
End
If
ligne.Cells.Add(cellule)
Table2.Rows.Add(ligne)
n = n + 1
Loop
end sub
Private
Sub bouton_click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Dim n
As
Integer
n = Left(sender.id, Len(sender.id) - 6) ' bouton : 6 lettre d'où le six.
End
Sub
A voir également:
Tableau généré dynamiquement, accéder aux controles
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 1 févr. 2005 à 17:02
Arg, j'aime pas faire ca, c'est chiant
Donc, il me semble qu'il suffit de mettre un ID a ton controle et puis
apres tu le trouve en faisant page.findcontrol("id") ou
container.findcontrol("id") avec container qui est l'element parent de
ton controle.
Normalement ca marche comme ca. Le problème qui peut apparaitre c'est
que vu que tu boucles tu auras toujours la meme id, et ca asp.net va
pas aimer et va donc faire sa soupe tu peux rajouter un id "dynamique" tu lui rajoutes i à la fin par exemple, et peut etre que ca passera mais encore pas sur.
J'espere t'avoir un peu aidé, je regarderais plus en détail ce soir si
je trouve le temps et si tu n'as pas trouvé de solution avant
évidemment :)
Cookiem
Messages postés46Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention17 juillet 2007 3 févr. 2005 à 08:31
Pour les radios boutons ben ... c'est normal que ca te semblait bizzard vu qu'en fait ca marche.
(par contre je capte pas la semaine derniere il faisait comme si il connaissait pas le type radio bouton et la ... nickel )
Et pour le cast ca marche nickel aussi .
(je savais pas qu'on pouvais caster en vb ca marche aussi pour le vb pas . net ?)
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 3 févr. 2005 à 12:18
pour VB non .net j'en sais rien, j'ai appris la prog avec vb.net mais il me semble que c'est aussi possible sauf que la notion d'objet et beaucoup moins presente.
Je crois qu'il y a aussi les fonctions Cint, Cstr etc... mais pas sur