title image


Smiley Re: ASP.NET: Kein Event bei dynamisch generierten Buttons!
Hallo,



...und dann wars das auch, er geht nicht zum entsprechenden Event. Das Datagrid existiert dann zwar noch aber die Controls sind alle verschwunden.

Muß ich die Controls irgendwo noch binden, wenn ich ein Ereignis auslöse?





Ja, wenn Du ein Control dynamisch erstellst, muss das Control bei jedem Seitenaufbau neu erzeugt werden, also auch beim Postback. Da bei Dir das Control während des Datenbindens erzeugt wird, musst Du die Datenbindung erneut ausführen.



Praktischer wäre es, den Button in den HTML-/ASPX-Quelltext der Seite zu setzen, in z.B.



<itemtemplate>

<asp:button id="btnDatum" runat="server" commandname="todayButton"

commandargument='<%#Container.DataItem.DataSetIndex]["COLUMN_NAME"].ToString()%>' text="Datum" />

</itemtemplate>



In diesem Fall würde es reichen, das Grid nur bei Bedarf zu binden (also beim PageLoad-Event bzw. wenn sich die Datenquelle geändert hat.)

Ich bin mir nicht ganz sicher, ob der Datenbindungsausdruck im CommandAgument so auch stimmt. Wenn nicht, hier ein Tip: die kannst im CodeBehind eine eigene protected Prozedur definieren, die genau das macht, was Du willst.

In VB sähe das dann so aus:



Protected Function MeineDatenbindungsProc(item as Object) as String

'Hier machste Deinen Kram

End Function



und im HTML-Code:



<itemtemplate>

<asp:button id="btnDatum" runat="server" commandname="todayButton"

commandargument='<%#MeineDatenbindungsProc(Container.DataItem)%>' text="Datum" />

</itemtemplate>



Übrigens, wenn das Grid an eine DataTable gebunden ist, dann ist Container.DataItem ein DataRowView-Objekt.



Ich hoffe es hilft.



Ciao

L.Y.





geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: