Forums Neueste Beiträge
 

dynamisch erzeugtes Control nach Buttonklick sichtbar machen

29/01/2010 - 18:45 von Luzie Schulte | Report spam
Hallo

ich erzeuge beim Laden der Seite mehrere dyn. Controls, welche in
entspr. Placeholder geschrieben werden. Das funktioniert auch alles
wunderbar.

bsp.

Sub kurztitel()
Dim lblKurztitel As New Label()
lblKurztitel.Text = "Kurztitel"
lblKurztitel.ID = "lblKurztitel"
lblKurztitel.AssociatedControlID = "tbKurztitel"
lblKurztitel.CssClass = "labelA"

Dim tbKurztitel As New TextBox()
tbKurztitel.ID = "tbKurztitel"
tbKurztitel.CssClass = "fotext400"

kTitel.Controls.Add(lblKurztitel)
kTitel.Controls.Add(tbKurztitel)
End Sub

Jetzt kommt aber die Situation, dass die Textbox tbKurztitel und auch
andere nach einem Buttonklick einen anderen Wert bekommen muss, z.B.
aus einer DB-Abfrage

Protected Sub btncopy_Click(ByVal sender As Object, ByVal e As
System.Web.UI.ImageClickEventArgs)
Me.Wizard1.ActiveStepIndex = 1
Me.pnSuche.Visible = False
Dim btn As ImageButton = CType(sender, ImageButton)

Dim conn As New SqlConnection(InConfig.conService)
Dim querystring As String = _
"select themen, beginn, bildungspunkte, kurztitel from seminar
where kursid=" & btn.CommandArgument.ToString
Dim cmd As New SqlCommand(querystring, conn)
Try
conn.Open()

Dim reader As SqlDataReader = cmd.ExecuteReader
If reader.HasRows Then
If reader.Read Then
Me.tbThemen.Text = reader(0)
Me.tbBeginn.Text = DateAdd(DateInterval.Year, 1,
reader(1))
Me.ddZeiten.SelectedValue = reader(2)

End If
End If
Catch ex As SqlException
Response.Write(ex.Message)
Finally
conn.Close()
End Try

End Sub

Wie kann ich denn in dem Falle das Control wieder verfügbar machen?
Muss ich es nochmal erzeugen?

Ich würde mich über eine Antwort sehr freuen.

Herzliche Grüße, die Luzie!
 

Lesen sie die antworten

#1 Thomas Bandt
29/01/2010 - 19:28 | Warnen spam
Am 29.01.10 18:45, schrieb Luzie Schulte:
Wie kann ich denn in dem Falle das Control wieder verfügbar machen?
Muss ich es nochmal erzeugen?



So ist es, die Controls musst du bei jedem einzelnen
Aufruf neu erzeugen, und zwar im Lifecycle so früh
wie möglich. Denke auch daran jedem Control zwingend
eine eigene ID zu geben, sonst bekommst du mit dem
Viewstate Probleme.

Gruß, Thomas [MVP ASP/ASP.NET]
http://www.69grad.de

Ähnliche fragen