Hi J�rg,
versuche mal nach dem Update die Datenquelle des DataGrids zu aktualisieren
und
neu zu binden.
vielleicht k�nnte dir folgender Ablauf etwas helfen:
protected void Page_Load(Object Src, EventArgs E)
{
myConnection = new SqlConnection(ConnectionString);
if (!IsPostBack)
DataBind();
}
public void DataBind()
{
//hier werden die Daten aus der DB gelesen
// und an das DataGrid gebunden
SqlDataAdapter myCommand = new SqlDataAdapter("select * from
Basket", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds);
MyDataGrid.DataSource=ds.Tables[0].DefaultView;
MyDataGrid.DataBind();
}
public void update_basket(object Sender, DataGridCommandEventArgs e)
{
NeueMenge = (TextBox) e.Item.FindControl("Menge");
// Die Tabellen in der DB werden aktualisiert...
...
...
//DataGrid wird aktualisiert
DataBind();
}
gr�sse
Andreas
-----Urspr�ngliche Nachricht-----
Von: J�rg Krause [mailto:[EMAIL PROTECTED]]
Gesendet: Mittwoch, 17. April 2002 02:00
An: aspDEdotnet
Betreff: [aspdedotnet] Aktualisierung mit DataGrid
Hi Liste,
ich verwende ein DataGrid zur Aktualisierung von Tabellen.
Ein der Spaltendefinitionen verwendet ein edititemtemplate:
-- schnipp--
<asp:templatecolumn headertext="Menge">
<headerstyle backcolor="silver"/>
<itemtemplate>
<%# DataBinder.Eval(Container.DataItem, "Menge") %>
</itemtemplate>
<edititemtemplate>
<asp:textbox id="Menge" width="30px" runat="server"
text='<%# DataBinder.Eval(Container.DataItem, "Menge") %>'/>
</edititemtemplate>
</asp:templatecolumn>
-- schnipp--
Im Kopf des Grid steht:
-- schnipp--
onupdatecommand="update_basket">
-- schnipp--
In der Klasse ist definiert:
-- schnipp--
public void update_basket(object Sender, DataGridCommandEventArgs e)
{
NeueMenge = (TextBox) e.Item.FindControl("Menge");
// usw.
}
-- schnipp--
NeueMenge.Text sollte nun beim Aktualisierung den Wert der Eingabe in
die Textbox enthalten. Es erscheint aber immer der alte Wert aus
der Datenbindung. Alle anderen Vorg�nge, Abbrechen, Edit-Starten
usw. funktionieren.
Es verh�lt sich so, als ob der Feldinhalt ignoriert wird. Die Methode
"update_basket" wird korrekt aufgerufen, der Wert steht ja auch drin,
nur eben der alte.
Interessant ist, wenn man in den Quelltext schaut und "name" abschreibt:
<input name="basket:_ctl4:Menge" ...
und dann mit Request.Form["basket:_ctl4:Menge"] den Wert direkt liest,
stimmt es, also das Formular wird definitiv korrekt versendet.
Hat irgendwer eine Idee, was hier nicht stimmen k�nnte?
J�rg
| [aspdedotnet] als [EMAIL PROTECTED] subscribed
| http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.dotnetgerman.com/listen/aspDEdotnet.asp
| [aspdedotnet] als [email protected] subscribed
| http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.dotnetgerman.com/listen/aspDEdotnet.asp