(ASP.Net): Eventhandler bei dynamisch gen. Controls
JCB
- sonstiges
Hallo!
Es geht um folgende ASP.Net-Seite:
#############################################
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
#############################################
'#############################################
test.aspx.vb:
Partial Class test
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
CreateBT()
End Sub
Private Sub Bt_click(ByVal sender As Object, ByVal e As System.EventArgs)
CreateBT()
End Sub
Private Sub CreateBT()
Me.form1.Controls.Clear()
Dim bt As New Button
AddHandler bt.Click, AddressOf Bt_click
Me.form1.Controls.Add(bt)
End Sub
End Class
'#############################################
Erklärung:
Beim Laden der Seite wird ein Button der Form hinzugefügt und das Click-Ereignis mit Bt_click verknüpft. Wenn der Button geklickt wird, wird der Button erstmal wieder hinzugefügt (um überhaupt auf das Ereignis reagieren zu können) und anschließend wird das Ereignis BT_Click ausgelöst. Dort soll er den alten Button löschen und einen neuen Button mit gleicher Funktion hinzufügen. Auf dieser Testseite scheint dies sinnlos zu sein, jedoch auf einer anderen Seite generiere ich die Controls in Abhängikeit von Daten, die sich bei dem Ereignis Bt_click jedes mal ändern.
Problem:
Nachdem das Ereignis Bt_click ausgelöst wurde, erscheint wie erwartet der neue Button auf der Seite. Jedoch wird dieses mal beim Anklicken kein BT_Click-Ereignis ausgelöst. Dies erfolgt erst beim 2. Klicken.
Kann mir jemand diese Verhalten erläutern oder vielleicht sogar ne Lösung anbieten :)?
Gruß
Jan