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

Antwort per Email an