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
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