Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder dans
lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic sur
le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1' ont
été trouvés. FindControl requiert que les contrôles aient des ID uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder dans
lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic sur
le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1' ont
été trouvés. FindControl requiert que les contrôles aient des ID uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder dans
lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic sur
le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1' ont
été trouvés. FindControl requiert que les contrôles aient des ID uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom ?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder dans
lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1' ont
été trouvés. FindControl requiert que les contrôles aient des ID uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom ?..
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab75e29$0$12653$ba4acef3@news.orange.fr...
Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder dans
lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1' ont
été trouvés. FindControl requiert que les contrôles aient des ID uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom ?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder dans
lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1' ont
été trouvés. FindControl requiert que les contrôles aient des ID uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc", Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") = DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc", Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc", Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc", Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") = DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc", Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc", Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %23ZpvY0qOKHA.5108@TK2MSFTNGP02.phx.gbl...
Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab75e29$0$12653$ba4acef3@news.orange.fr...
Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc", Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") = DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc", Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc", Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load, une
fois depuis Secteur_Change) et l'on tente donc de créer deux fois les
mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load, on
ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" a écrit dans le message de
news:4ab765d5$0$12654$Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") = DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load, une
fois depuis Secteur_Change) et l'on tente donc de créer deux fois les
mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load, on
ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab765d5$0$12654$ba4acef3@news.orange.fr...
Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") = DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %23ZpvY0qOKHA.5108@TK2MSFTNGP02.phx.gbl...
Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab75e29$0$12653$ba4acef3@news.orange.fr...
Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load, une
fois depuis Secteur_Change) et l'on tente donc de créer deux fois les
mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load, on
ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" a écrit dans le message de
news:4ab765d5$0$12654$Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") = DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load, une
fois depuis Secteur_Change) et l'on tente donc de créer deux fois les
mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load, on
ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" a écrit dans le message de
news:4ab765d5$0$12654$Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") = DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load, une
fois depuis Secteur_Change) et l'on tente donc de créer deux fois les
mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load, on
ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab765d5$0$12654$ba4acef3@news.orange.fr...
Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") = DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %23ZpvY0qOKHA.5108@TK2MSFTNGP02.phx.gbl...
Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab75e29$0$12653$ba4acef3@news.orange.fr...
Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load, une
fois depuis Secteur_Change) et l'on tente donc de créer deux fois les
mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load, on
ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" a écrit dans le message de
news:4ab765d5$0$12654$Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") = DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème ou
au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Patrice j'ai trouvé
J'ai supprimé le VoirMachine dans le Form_Load non-postback et postback
Mais je n'avais plus de postback sur lblF
j'ai ajouté sur ma page EnableViewState="True"
Et cela fonctionne
Etait-ce ce qu'il fallait faire ?
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load,
une fois depuis Secteur_Change) et l'on tente donc de créer deux fois les
mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load, on
ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" a écrit dans le message de
news:4ab765d5$0$12654$Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") =
DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème
ou au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Patrice j'ai trouvé
J'ai supprimé le VoirMachine dans le Form_Load non-postback et postback
Mais je n'avais plus de postback sur lblF
j'ai ajouté sur ma page EnableViewState="True"
Et cela fonctionne
Etait-ce ce qu'il fallait faire ?
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %23v5L3TrOKHA.1876@TK2MSFTNGP06.phx.gbl...
Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load,
une fois depuis Secteur_Change) et l'on tente donc de créer deux fois les
mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load, on
ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab765d5$0$12654$ba4acef3@news.orange.fr...
Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") =
DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %23ZpvY0qOKHA.5108@TK2MSFTNGP02.phx.gbl...
Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème
ou au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab75e29$0$12653$ba4acef3@news.orange.fr...
Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Patrice j'ai trouvé
J'ai supprimé le VoirMachine dans le Form_Load non-postback et postback
Mais je n'avais plus de postback sur lblF
j'ai ajouté sur ma page EnableViewState="True"
Et cela fonctionne
Etait-ce ce qu'il fallait faire ?
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load,
une fois depuis Secteur_Change) et l'on tente donc de créer deux fois les
mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load, on
ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" a écrit dans le message de
news:4ab765d5$0$12654$Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") =
DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème
ou au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je clic
sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Tu as bien ce que tu veux au 1er appel de la page ? Pour le ViewState,
cela veut sans doute dire que qq chose n'est pas initialisé dans ton code
(et activer le viewstate permet de garder l'info entre deux appels).
Je ne sais pas trop quelle est ta logique de départ dans mon cas je ferais
qq chose :
- au chargement j'initialise les données si nécessaires et j'affiche les
LinkButtons
- finalement je n'ai pratiquement rien à faire dans le SelectChange (je me
contente d'effacer le choix en cours qui n'est plus valide puisqu'on vient
de changer de catégorie)
- dans le Command, j'affiche le choix courant
Le veiwState est indispensable car le DataBind n'est fait qu'une fois. Si
je le fais tout le temps je peux me passer normalement du viewstate...
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
If Not IsPostBack Then
' Affichage initial
Dim MySource As New DataTable
MySource.Columns.Add("Value", GetType(String))
MySource.Columns.Add("Text", GetType(String))
MySource.Rows.Add(0, "Option A")
MySource.Rows.Add(1, "Option B")
rbl.DataSource = MySource
rbl.DataBind()
rbl.SelectedIndex = 0
End If
DisplayPlaceHolder()
End Sub
Sub lb_Command(ByVal sender As Object, ByVal e As CommandEventArgs)
' Valeur choisie affiché en cas de click sur LinkButton
MyLabel.Text = "Vous avez choisi " & e.CommandArgument.ToString
End Sub
Sub DisplayPlaceHolder()
For i = 0 To 3
Dim l As New LinkButton
l.ID = "lbl" & i.ToString
l.Text = IIf(rbl.SelectedIndex = 0, "A", "B") & i
l.CommandName = "Select"
l.CommandArgument = l.Text
AddHandler l.Command, AddressOf lb_Command
plh.Controls.Add(l)
plh.Controls.Add(New LiteralControl("<br />"))
Next
End Sub
Private Sub rbl_SelectedIndexChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles rbl.SelectedIndexChanged
' Changement : effacer le choix
MyLabel.Text = ""
End Sub
--
Patrice
"Emilie" a écrit dans le message de
news:4ab77e34$0$17751$Patrice j'ai trouvé
J'ai supprimé le VoirMachine dans le Form_Load non-postback et postback
Mais je n'avais plus de postback sur lblF
j'ai ajouté sur ma page EnableViewState="True"
Et cela fonctionne
Etait-ce ce qu'il fallait faire ?
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load,
une fois depuis Secteur_Change) et l'on tente donc de créer deux fois
les mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load,
on ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" a écrit dans le message de
news:4ab765d5$0$12654$Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") =
DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème
ou au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je
clic sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Tu as bien ce que tu veux au 1er appel de la page ? Pour le ViewState,
cela veut sans doute dire que qq chose n'est pas initialisé dans ton code
(et activer le viewstate permet de garder l'info entre deux appels).
Je ne sais pas trop quelle est ta logique de départ dans mon cas je ferais
qq chose :
- au chargement j'initialise les données si nécessaires et j'affiche les
LinkButtons
- finalement je n'ai pratiquement rien à faire dans le SelectChange (je me
contente d'effacer le choix en cours qui n'est plus valide puisqu'on vient
de changer de catégorie)
- dans le Command, j'affiche le choix courant
Le veiwState est indispensable car le DataBind n'est fait qu'une fois. Si
je le fais tout le temps je peux me passer normalement du viewstate...
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
If Not IsPostBack Then
' Affichage initial
Dim MySource As New DataTable
MySource.Columns.Add("Value", GetType(String))
MySource.Columns.Add("Text", GetType(String))
MySource.Rows.Add(0, "Option A")
MySource.Rows.Add(1, "Option B")
rbl.DataSource = MySource
rbl.DataBind()
rbl.SelectedIndex = 0
End If
DisplayPlaceHolder()
End Sub
Sub lb_Command(ByVal sender As Object, ByVal e As CommandEventArgs)
' Valeur choisie affiché en cas de click sur LinkButton
MyLabel.Text = "Vous avez choisi " & e.CommandArgument.ToString
End Sub
Sub DisplayPlaceHolder()
For i = 0 To 3
Dim l As New LinkButton
l.ID = "lbl" & i.ToString
l.Text = IIf(rbl.SelectedIndex = 0, "A", "B") & i
l.CommandName = "Select"
l.CommandArgument = l.Text
AddHandler l.Command, AddressOf lb_Command
plh.Controls.Add(l)
plh.Controls.Add(New LiteralControl("<br />"))
Next
End Sub
Private Sub rbl_SelectedIndexChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles rbl.SelectedIndexChanged
' Changement : effacer le choix
MyLabel.Text = ""
End Sub
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab77e34$0$17751$ba4acef3@news.orange.fr...
Patrice j'ai trouvé
J'ai supprimé le VoirMachine dans le Form_Load non-postback et postback
Mais je n'avais plus de postback sur lblF
j'ai ajouté sur ma page EnableViewState="True"
Et cela fonctionne
Etait-ce ce qu'il fallait faire ?
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %23v5L3TrOKHA.1876@TK2MSFTNGP06.phx.gbl...
Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load,
une fois depuis Secteur_Change) et l'on tente donc de créer deux fois
les mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load,
on ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab765d5$0$12654$ba4acef3@news.orange.fr...
Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") =
DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %23ZpvY0qOKHA.5108@TK2MSFTNGP02.phx.gbl...
Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème
ou au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" <amc-emilie@wanadoo.fr> a écrit dans le message de
news:4ab75e29$0$12653$ba4acef3@news.orange.fr...
Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je
clic sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie
Tu as bien ce que tu veux au 1er appel de la page ? Pour le ViewState,
cela veut sans doute dire que qq chose n'est pas initialisé dans ton code
(et activer le viewstate permet de garder l'info entre deux appels).
Je ne sais pas trop quelle est ta logique de départ dans mon cas je ferais
qq chose :
- au chargement j'initialise les données si nécessaires et j'affiche les
LinkButtons
- finalement je n'ai pratiquement rien à faire dans le SelectChange (je me
contente d'effacer le choix en cours qui n'est plus valide puisqu'on vient
de changer de catégorie)
- dans le Command, j'affiche le choix courant
Le veiwState est indispensable car le DataBind n'est fait qu'une fois. Si
je le fais tout le temps je peux me passer normalement du viewstate...
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
If Not IsPostBack Then
' Affichage initial
Dim MySource As New DataTable
MySource.Columns.Add("Value", GetType(String))
MySource.Columns.Add("Text", GetType(String))
MySource.Rows.Add(0, "Option A")
MySource.Rows.Add(1, "Option B")
rbl.DataSource = MySource
rbl.DataBind()
rbl.SelectedIndex = 0
End If
DisplayPlaceHolder()
End Sub
Sub lb_Command(ByVal sender As Object, ByVal e As CommandEventArgs)
' Valeur choisie affiché en cas de click sur LinkButton
MyLabel.Text = "Vous avez choisi " & e.CommandArgument.ToString
End Sub
Sub DisplayPlaceHolder()
For i = 0 To 3
Dim l As New LinkButton
l.ID = "lbl" & i.ToString
l.Text = IIf(rbl.SelectedIndex = 0, "A", "B") & i
l.CommandName = "Select"
l.CommandArgument = l.Text
AddHandler l.Command, AddressOf lb_Command
plh.Controls.Add(l)
plh.Controls.Add(New LiteralControl("<br />"))
Next
End Sub
Private Sub rbl_SelectedIndexChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles rbl.SelectedIndexChanged
' Changement : effacer le choix
MyLabel.Text = ""
End Sub
--
Patrice
"Emilie" a écrit dans le message de
news:4ab77e34$0$17751$Patrice j'ai trouvé
J'ai supprimé le VoirMachine dans le Form_Load non-postback et postback
Mais je n'avais plus de postback sur lblF
j'ai ajouté sur ma page EnableViewState="True"
Et cela fonctionne
Etait-ce ce qu'il fallait faire ?
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Au chargement de la page on appelle VoirMachine (que l'on soit ou non en
postback). VoirMachine est également appelé via Secteur_Change et c'est
dans VoirMachine que l'on crée les contrôles lblF. Donc si le secteur
change, on appelle deux fois "VoirMachine" (une fois depuis Page_Load,
une fois depuis Secteur_Change) et l'on tente donc de créer deux fois
les mêmes contrôles...
Quelque chose ne va pas dans la logique. Je dirais que dans Form_Load,
on ne doit avoir que les initialisations si on n'est pas en postback. Le
reste de ce qui est arrive en postback est géré via les évènements qui
surviennent et pas dans un Else...
--
Patrice
"Emilie" a écrit dans le message de
news:4ab765d5$0$12654$Bonjour Patrice
Merci pour ta réponse, je suis obligé de te donner tout le code.
Cela Beug sur : Sub Secteur_Change(ByVal sender As Object, ByVal e As
EventArgs)
MON CODE
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not Page.IsPostBack Then
Session("IDsecteur") = "FAB"
VoirMachine()
Else
PlhFAB.Visible = False
VoirMachine()
End If
End Sub
Sub Secteur_Change(ByVal sender As Object, ByVal e As EventArgs)
RblSecteur.Visible = True
If RblSecteur.SelectedIndex > -1 Then
Session("Secteur") = RblSecteur.SelectedItem.Value
RblSecteur.Visible = True
Select Case Session("Secteur")
Case "Matériel de fabrication"
LblTitre.Text = "MATERIEL DE FABRICATION"
Session("IDsecteur") = "FAB"
Case "Assistance à la fabrication"
LblTitre.Text = "ASSISTANCE A LA FABRICATION"
Session("IDsecteur") = "ASS"
Case "Matériel de métrologie"
LblTitre.Text = "MATERIEL DE METROLOGIE"
Session("IDsecteur") = "MET"
End Select
Dim VoisSecteur = Session("IDsecteur")
VoirMachine()
End If
End Sub
Sub VoirMachine()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "VoirMachine")
Session("ImgFAB") =
DSPageData.Tables("VoirMachine").Rows(0).Item("Limage")
Session("NbRef") =
DSPageData.Tables("VoirMachine").Rows.Count
Dim voirSecteur As String = Session("IDsecteur")
Dim VoirNbNum As Integer = Session("NbRef")
'Création du Cph
Dim intI As Integer = 0
'Dim counter As Integer = 1
For intI = 1 To Session("NbRef")
Session("Num") = intI
Dim lblF As New WebControls.LinkButton
lblF.ID = "lblF" & Session("Num")
AfficheTexte()
With lblF
.Text = Session("Texte")
.Font.Bold = True
.Width = 200
End With
AddHandler lblF.Command, AddressOf LinkButtonF_Command
'Ajouter linkbutton au container (PlaceHolder)
Me.PlhFAB.Controls.Add(lblF)
Next
End Using
End Sub
Public Sub LinkButtonF_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)
If IsPostBack Then
Dim lblF As LinkButton = DirectCast(sender, LinkButton)
Session("IDprod") = Mid(lblF.ID, 5)
Dim lechoix As Integer = Session("IDprod")
lechoix = Session("IDprod")
AfficheChoix()
Dim VoirLaRef As String = Session("Ref")
End If
End Sub
Sub AfficheTexte()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
'connection a la base de données
DBCommand = New OleDbCommand("Select * From Machines Where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Ordre", Session("Num"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "Laref")
Dim Reftexte As String =
DSPageData.Tables("Laref").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("Laref").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("Laref").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Sub AfficheChoix()
'connection a la base de données
Using connexion As OleDbConnection = Me.DBConn
Dim DBCommand As OleDbCommand
'Objet Dataset
Dim DSPageData As New DataSet
DBCommand = New OleDbCommand("Select * From Machines where
Parc=? and Ordre=?", DBConn)
'objet DataAdapter
Dim myOleDbDataAdapter As New OleDbDataAdapter(DBCommand)
DBCommand.Parameters.AddWithValue("Parc",
Session("IDsecteur"))
DBCommand.Parameters.AddWithValue("Parc", Session("IDprod"))
myOleDbDataAdapter.SelectCommand.Parameters("Parc").Value =
Session("IDsecteur")
myOleDbDataAdapter.Fill(DSPageData, "LaMachine")
Session("ImgDuSoin") =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
Dim Reftexte As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Descro")
Dim TextAaff As String = Replace(Reftexte, "%", "<BR>")
Session("Texte") =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
LblDescro.Text = "Spécificité : " & TextAaff
Dim VoirImage As String =
DSPageData.Tables("LaMachine").Rows(0).Item("Limage")
ImgMachine.ImageUrl = "~/Image/Machines/" & VoirImage
LblTitre.Text =
DSPageData.Tables("LaMachine").Rows(0).Item("Designe")
ImgMachine.ToolTip = Session("Texte")
End Using
End Sub
Emilie
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de
news: %Comme d'hab :
- quelle est la ligne concernée ?
- un exemple *le plus court possible* qui montre juste ce problème
pourrait permettre te permettre de comprendre et résoudre le problème
ou au pire de permettre à qq d'uatre de le reproduire et de t'aider
Je dirais que le code actuel crée plusieurs contrôles avec le même nom
?..
--
Patrice
"Emilie" a écrit dans le message de
news:4ab75e29$0$12653$Bonjour
J'ai un problème de postback dans une appli web avec VB
J'ai un RadioButtonListe qui permet de choisir entre 3 secteurs
d'activité
Le choix de l'activité déclenche la création d'un ContentPlaceHolder
dans lequel sont créés dynamiquement des linkButton
Au premier affichage je n'ai pas de problème, par contre quand je
clic sur le RadioButtonListe cela Beug et j'ai le message :
System.Web.HttpException: Plusieurs contrôles avec le même ID 'lblF1'
ont été trouvés. FindControl requiert que les contrôles aient des ID
uniques.
J'ai beau cherché je ne trouve pas de solutions, pouvez-vous m'aider
Merci pour votre aide
Emilie