AutoPostback bei dynamisch generierten Steuerelementen

13/10/2007 - 19:17 von Christof Reusch | Report spam
Hallo,

ich befülle in der Funktion Page_Load einen Placeholder mit neun Checkboxen:

Me.PlaceHolder1.Controls.Clear()
For i As Integer = 1 To 9
Dim x As New CheckBox
x.AutoPostBack = True : x.ID = "cb_" & i : x.Text = "" & i
Me.PlaceHolder1.Controls.Add(x)
Next

Beim Postback frage ich das Ergebnis über Request.Form ab:

For i As Integer = 0 To Request.Form.Count - 1
If Request.Form(i) Like "cb_*" Then
If Request.Form(Request.Form(i)) = "on" Then
Me.Label1.Visible = True : Me.Label1.Text = "Checkbox " &
Right(Request.Form(i), 1) & " geklickt."
End If
ds = Request.Form(i)
End If
Next

Funktioniert, ist aber nicht elegant.

Bietet ASP.NET keine elegantere Möglichkeit abzufragen, welche Checkbox
geklickt wurde?

Gruß Christof.
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
14/10/2007 - 17:23 | Warnen spam
Hallo Christof,

"Christof Reusch" schrieb

Beim Postback frage ich das Ergebnis über Request.Form ab:
...
Funktioniert, ist aber nicht elegant.

Bietet ASP.NET keine elegantere Möglichkeit abzufragen, welche Checkbox geklickt wurde?



wenn ichs richtig verstanden habe, suchst Du was in der Richtung wie:



Dim MyCheckBox As New CheckBox()
MyCheckBox.ID = "..."
AddHandler( MyCheckBox.CheckedChanged, AddressOf CheckBoxChanged )
...

Private Sub CheckBoxChanged(ByVal sender As Object, ByVal e As System.EventArgs)

Dim MyControl As CheckBox = CType( sender, CheckBox )
MyControl.ID
...

End Sub



HTH

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen