Bonjour,
J'ai ajouté des contrôles dynamique à ma page.aspx lorsque j'effectue une sélection sur une DropDownList. Donc dans l'évènement SelectedIndexChanged de ma DDL je cré mes contrôles dynamique dans un panel et jusque là tout fonctionne:
Voici le code:
Dim req As String
req = "SELECT ..."
Dim con As New Data.SqlClient.SqlConnection
Dim com As New Data.SqlClient.SqlCommand
con = New Data.SqlClient.SqlConnection("Integrated Security=true;Initial Catalog=Outillage;Data Source=...")
Try
con.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try
com.Connection = con
com.CommandText = req
Dim myReader As Data.SqlClient.SqlDataReader = com.ExecuteReader()
Dim num As Integer = 0
Do While myReader.Read()
Dim namemach, progmach, matrice, tpsmach As New Label
Dim txtprgmach, txtmatrice, txttpsmach As New TextBox
namemach.Text = myReader(0).ToString
progmach.Text = "Programme machine"
matrice.Text = "Matrice"
tpsmach.Text = "Temps Machine"
namemach.ID = "namemach" & num.ToString
progmach.ID = "progmach" & num.ToString
matrice.ID = "matrice" & num.ToString
tpsmach.ID = "tpsmach" & num.ToString
num = num + 1
Me.Panelmach.Controls.Add(namemach)
Me.Panelmach.HorizontalAlign = HorizontalAlign.Right
Me.Panelmach.Controls.Add(New LiteralControl("</br>"))
Me.Panelmach.Controls.Add(progmach)
Me.Panelmach.Controls.Add(txtprgmach)
Me.Panelmach.Controls.Add(New LiteralControl("</br>"))
Me.Panelmach.Controls.Add(matrice)
Me.Panelmach.Controls.Add(txtmatrice)
Me.Panelmach.Controls.Add(New LiteralControl("</br>"))
Me.Panelmach.Controls.Add(tpsmach)
Me.Panelmach.Controls.Add(txttpsmach)
Me.Panelmach.Controls.Add(New LiteralControl("</br>"))
Me.Panelmach.Controls.Add(New LiteralControl("</br>"))
Loop
myReader.Close()
myReader = Nothing
con.Close()
J'ai un bouton sur ma page qui me permet d'ajouter les données entrées dans les textbox dans une base de données. Seul problème lorsque je clique sur mon bouton, tout mes controles dynamique et les données qu'ils contiennent sont perdus. Alors j'ai beaucoup cherché, je pense avoir à peu près compris le cycle de vie d'une page ASP.NET, j'ai aussi compris que je devais charger mes contrôles dynamique dans le Init de ma page... Mais c'est la que je bloque.
Est ce qu'il faut que je mette le code que j'ai mis au dessus dans le Init? Comment fait on pour charger à chaque PostBack les contrôles et leur affecter les données qu'ils contenaient dans le formulaire précédent?