J'ai un problème avec l'utilisation de FindControl, quand j'écris dans mon
code :
For i As Integer=1 to Max
thisImage=Me.FindControl("Image" & i) ' Pour trouver le contrôle ImageX
' Traitement
Next
Si je teste, il ne trouve pas le controle Image1, ni les autres
Pouverz-vous me dire pourquoi, je ne trouve rien sur MSDN qui peut m'aider
J'ai complètement réécrit mon code et cela fonctionne Merci pour ton aide
Jean Claude "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news: %
Bonjour,
Je ne suis pas sûr de comprendre pourquoi tu recherches le même contrôle "Image" & I à la fois dans cphContenu puis justement dans le contrôle que tu as trouvé ne connaissant pas la structure de la page. Sinon je pense que le problème est peut-être que tu rends l'image n° I visible sans masquer la précédente (ou les deux images sont visibles dès le premier appel ?).
Si je reprends au début, il semblerait que tu veuilles afficher une seule image à la fois et passer à la suivante à chaque click du bouton. Un méthode qui me semble plus simple serait d'avoir un seul contrôle image et de lui indiquer à chaque click du bouton quelle est l'image qu'il doit afficher... On aurait alors dans la page qq chose comme :
Private Sub ShowNextImage() Dim Images() As String = {"a", "b", "c"} Image1.ImageUrl = Server.MapPath("~/images/" & Images(Session("Num")) & ".jpg") Session("Num") = (Session("Num") + 1) Mod Images.Length End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Session("Num") = 0 ShowNextImage() End If End Sub
Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ShowNextImage() End Sub End Class
"Jean Claude" a écrit dans le message de news: 478dbbe3$0$888$
Bjr Gilles
Voici mon code : Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Not IsPostBack Then
Session("Num") = 0
LblTitre1.Text = "Notre Savoir-Faire ..."
Image1.Visible = False
LblTexte2.Visible = False
TxtTexte2.Visible = False
Image2.Visible = False
End If
End Sub
Protected Sub BtnAutre_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAutre.Click
Dim I As Integer = Session("Num")
I = Session("Num") + 1
Dim thisImage As Control = Master.FindControl("cphContenu").FindControl("Image" & I)
Dim imgUC As System.Web.UI.WebControls.Image = thisImage.FindControl("Image" & I)
imgUC.Visible = True
Dim thisTitre As Control = Master.FindControl("cphContenu").FindControl("LblTexte" & I)
Dim TitreUC As System.Web.UI.WebControls.Label = thisTitre.FindControl("LblTexte" & I)
TitreUC.Visible = True
Dim thisTexte As Control = Master.FindControl("cphContenu").FindControl("TxtTexte" & I)
Dim TexteUC As System.Web.UI.WebControls.TextBox = thisTexte.FindControl("TxtTexte" & I)
TexteUC.Visible = True
End Sub
A chaque clic du bouton, je veux afficher Image1, Image2, etc...
Cordialement J Claude
"Gilles TOURREAU [MVP]" a écrit dans le message de news:
"Jean Claude" a écrit dans le message de news:478c71dc$0$883$
Merci Gilles c'est OK
Par contre je veux afficher une image à chaque clic d'un bouton, j'ai écris : dans le page load j'ai : If not IsPostBack then session("num")=0 End if j'ai mis le num en session car je dois récuperer le num pour d'autres procédures Protected Sub BtnAutre_click .................... Dim I as integer=0 If Session("Num")<=7 then Session("Num")=Session("Num")+1 I=Session("Num") .................... End if End sub
Et cela m'affiche deux images à la fois je voudrais en afficher qu'une à la fois
Jean Claude
Bonjour,
Peux-tu montrer plus de code ? Car là il est très difficile de comprendre la relation entre le clic du bouton et l'affichage des images...
Cordialement
-- Gilles TOURREAU - MVP C#
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Patrice
J'ai complètement réécrit mon code et cela fonctionne
Merci pour ton aide
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%23lipz8BWIHA.1168@TK2MSFTNGP02.phx.gbl...
Bonjour,
Je ne suis pas sûr de comprendre pourquoi tu recherches le même contrôle
"Image" & I à la fois dans cphContenu puis justement dans le contrôle que
tu as trouvé ne connaissant pas la structure de la page.
Sinon je pense que le problème est peut-être que tu rends l'image n° I
visible sans masquer la précédente (ou les deux images sont visibles dès
le premier appel ?).
Si je reprends au début, il semblerait que tu veuilles afficher une seule
image à la fois et passer à la suivante à chaque click du bouton. Un
méthode qui me semble plus simple serait d'avoir un seul contrôle image et
de lui indiquer à chaque click du bouton quelle est l'image qu'il doit
afficher... On aurait alors dans la page qq chose comme :
Private Sub ShowNextImage()
Dim Images() As String = {"a", "b", "c"}
Image1.ImageUrl = Server.MapPath("~/images/" &
Images(Session("Num")) & ".jpg")
Session("Num") = (Session("Num") + 1) Mod Images.Length
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Session("Num") = 0
ShowNextImage()
End If
End Sub
Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
ShowNextImage()
End Sub
End Class
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 478dbbe3$0$888$ba4acef3@news.orange.fr...
Bjr Gilles
Voici mon code :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not IsPostBack Then
Session("Num") = 0
LblTitre1.Text = "Notre Savoir-Faire ..."
Image1.Visible = False
LblTexte2.Visible = False
TxtTexte2.Visible = False
Image2.Visible = False
End If
End Sub
Protected Sub BtnAutre_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles BtnAutre.Click
Dim I As Integer = Session("Num")
I = Session("Num") + 1
Dim thisImage As Control =
Master.FindControl("cphContenu").FindControl("Image" & I)
Dim imgUC As System.Web.UI.WebControls.Image =
thisImage.FindControl("Image" & I)
imgUC.Visible = True
Dim thisTitre As Control =
Master.FindControl("cphContenu").FindControl("LblTexte" & I)
Dim TitreUC As System.Web.UI.WebControls.Label =
thisTitre.FindControl("LblTexte" & I)
TitreUC.Visible = True
Dim thisTexte As Control =
Master.FindControl("cphContenu").FindControl("TxtTexte" & I)
Dim TexteUC As System.Web.UI.WebControls.TextBox =
thisTexte.FindControl("TxtTexte" & I)
TexteUC.Visible = True
End Sub
A chaque clic du bouton, je veux afficher Image1, Image2, etc...
Cordialement
J Claude
"Gilles TOURREAU [MVP]" <gilles.tourreau@pos.fr> a écrit dans le message
de news: C37160D7-7DD0-4B41-9CCC-77C6A7A377B0@microsoft.com...
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news:478c71dc$0$883$ba4acef3@news.orange.fr...
Merci Gilles c'est OK
Par contre je veux afficher une image à chaque clic d'un bouton, j'ai
écris :
dans le page load j'ai :
If not IsPostBack then
session("num")=0
End if
j'ai mis le num en session car je dois récuperer le num pour d'autres
procédures
Protected Sub BtnAutre_click ....................
Dim I as integer=0
If Session("Num")<=7 then
Session("Num")=Session("Num")+1
I=Session("Num")
....................
End if
End sub
Et cela m'affiche deux images à la fois
je voudrais en afficher qu'une à la fois
Jean Claude
Bonjour,
Peux-tu montrer plus de code ? Car là il est très difficile de
comprendre la relation entre le clic du bouton et l'affichage des
images...
J'ai complètement réécrit mon code et cela fonctionne Merci pour ton aide
Jean Claude "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news: %
Bonjour,
Je ne suis pas sûr de comprendre pourquoi tu recherches le même contrôle "Image" & I à la fois dans cphContenu puis justement dans le contrôle que tu as trouvé ne connaissant pas la structure de la page. Sinon je pense que le problème est peut-être que tu rends l'image n° I visible sans masquer la précédente (ou les deux images sont visibles dès le premier appel ?).
Si je reprends au début, il semblerait que tu veuilles afficher une seule image à la fois et passer à la suivante à chaque click du bouton. Un méthode qui me semble plus simple serait d'avoir un seul contrôle image et de lui indiquer à chaque click du bouton quelle est l'image qu'il doit afficher... On aurait alors dans la page qq chose comme :
Private Sub ShowNextImage() Dim Images() As String = {"a", "b", "c"} Image1.ImageUrl = Server.MapPath("~/images/" & Images(Session("Num")) & ".jpg") Session("Num") = (Session("Num") + 1) Mod Images.Length End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Session("Num") = 0 ShowNextImage() End If End Sub
Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ShowNextImage() End Sub End Class
"Jean Claude" a écrit dans le message de news: 478dbbe3$0$888$
Bjr Gilles
Voici mon code : Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Not IsPostBack Then
Session("Num") = 0
LblTitre1.Text = "Notre Savoir-Faire ..."
Image1.Visible = False
LblTexte2.Visible = False
TxtTexte2.Visible = False
Image2.Visible = False
End If
End Sub
Protected Sub BtnAutre_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAutre.Click
Dim I As Integer = Session("Num")
I = Session("Num") + 1
Dim thisImage As Control = Master.FindControl("cphContenu").FindControl("Image" & I)
Dim imgUC As System.Web.UI.WebControls.Image = thisImage.FindControl("Image" & I)
imgUC.Visible = True
Dim thisTitre As Control = Master.FindControl("cphContenu").FindControl("LblTexte" & I)
Dim TitreUC As System.Web.UI.WebControls.Label = thisTitre.FindControl("LblTexte" & I)
TitreUC.Visible = True
Dim thisTexte As Control = Master.FindControl("cphContenu").FindControl("TxtTexte" & I)
Dim TexteUC As System.Web.UI.WebControls.TextBox = thisTexte.FindControl("TxtTexte" & I)
TexteUC.Visible = True
End Sub
A chaque clic du bouton, je veux afficher Image1, Image2, etc...
Cordialement J Claude
"Gilles TOURREAU [MVP]" a écrit dans le message de news:
"Jean Claude" a écrit dans le message de news:478c71dc$0$883$
Merci Gilles c'est OK
Par contre je veux afficher une image à chaque clic d'un bouton, j'ai écris : dans le page load j'ai : If not IsPostBack then session("num")=0 End if j'ai mis le num en session car je dois récuperer le num pour d'autres procédures Protected Sub BtnAutre_click .................... Dim I as integer=0 If Session("Num")<=7 then Session("Num")=Session("Num")+1 I=Session("Num") .................... End if End sub
Et cela m'affiche deux images à la fois je voudrais en afficher qu'une à la fois
Jean Claude
Bonjour,
Peux-tu montrer plus de code ? Car là il est très difficile de comprendre la relation entre le clic du bouton et l'affichage des images...
Cordialement
-- Gilles TOURREAU - MVP C#
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr