Laden...

EventHandler für Button.FindControl

Erstellt von chritian vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.128 Views
C
chritian Themenstarter:in
34 Beiträge seit 2006
vor 16 Jahren
EventHandler für Button.FindControl

Hey,

ich benutze eine FormView mit einem ItemTemplate und EditItemTemplate.
Da ich auf eine Postgresql DB zugreife, benutze ich den npgsql-treiber und muss den editiervorgang manuell durchführen.

mein Vorschlag (in der .cs datei):
mit dem ereignis Button.Click soll die methode "edit" aufgerufen werden, in der die Daten in die DB geschrieben werden.


protected void Page_Load(object sender, EventArgs e)
    {
        
        Button bt = new Button();
        bt = (Button)FormView.FindControl("Button1");
        //hole Daten aus PostgresDB
        this.FormView.DataBind();
        //events 
        bt.Click += new EventHandler(edit);
        
    }
    void edit(Object sender, EventArgs e)
    {
         //trage in DB ein
    }

Ich bekomme aber immer die Fehlermeldung:
"NullReferenceException wurde im Benutzercode nicht behandelt.
Object reference not set to an instance of an object."

Aber ich initialisiere doch Button bt = new Button(); !
Und das Click ereignis kann ich nicht direkt auf den Button "Button1" ausführen, mit bspw. folgendem Code:


protected void Page_Load(object sender, EventArgs e)
    {
        //hole Daten aus PostgresDB
        this.FormView.DataBind();
        //events 
        (Button)FormView.FindControl("Button1").Click += new EventHandler(edit);
        
    }

Danke für die Hilfe!
grüsse,
chritian

175 Beiträge seit 2006
vor 16 Jahren

Hi

Beim Aufruf der FindControl-Methode wird die Referenz deines BT-Objektes ja wieder überschrieben. Wenn das FindControl nun deinen Button nicht findet (was wohl so sein wird), wird deinem bt null zugewiesen...

Die vorgängige Instanzierung kannst du dir also sparen, die hat so oder so hier keinen Einfluss.

Gruss
Dani

C
chritian Themenstarter:in
34 Beiträge seit 2006
vor 16 Jahren
ok

ok, thanks.