in einem script habe ich diese methode zum editieren verwendet.
gru�
thomas
public void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = (int)e.Item.ItemIndex;
ShowWarenkorb();
}
public void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs
e)
{
MyDataGrid.EditItemIndex = -1;
ShowWarenkorb();
}
public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs
e)
{
SqlConnection myConnection = new
SqlConnection(ConfigurationSettings.AppSettings["weblogxdb"]);
String updateCmd = "UPDATE auftragspos SET matnr = @matnr,
menge = @menge
where id = @id";
SqlCommand myCommand = new SqlCommand(updateCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@id",
SqlDbType.Int,4));
myCommand.Parameters.Add(new SqlParameter("@matnr",
SqlDbType.Char,18));
myCommand.Parameters.Add(new SqlParameter("@menge",
SqlDbType.Int,4));
myCommand.Parameters["@id"].Value =
MyDataGrid.DataKeys[(int)e.Item.ItemIndex];
String[] cols = {"@id","@matnr","@menge"};
int numCols = e.Item.Cells.Count;
for (int i=2; i<numCols-1; i++) //skip first, second and last
column
{
String colvalue
=((TextBox)e.Item.Cells[i].Controls[0]).Text;
myCommand.Parameters[cols[i-1]].Value = colvalue;
}
myCommand.Connection.Open();
try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "<b>Warenkorb
aktualisiert</b><br>";
MyDataGrid.EditItemIndex = -1;
}
catch (SqlException exc)
{
if (exc.Number == 2627)
Message.InnerHtml = "FEHLER: Es ist bereits
ein Eintrag mit demselben
Prim�rschl�ssel vorhanden";
else
Message.InnerHtml = "FEHLER: Datensatz konnte
nicht aktualisiert
werden. Stellen Sie bitte sicher, dass alle
Felder richtig ausgef�llt
sind";
Message.Style["Farbe"] = "red";
}
myCommand.Connection.Close();
ShowWarenkorb();
}
-----Urspr�ngliche Nachricht-----
Von: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]Im Auftrag von Mansur
Esmann [OM]
Gesendet: Mittwoch, 17. Juli 2002 17:14
An: aspDEdotnet
Betreff: [aspdedotnet] Grunds�tzliche Frage (War DataGrid)
Hallo wiedereinmal ....
also ich habe nun mein DataGrid soweit hingekriegt.
Einziger Schwachpunkt ist der Einsatz von Sessions, um mir die Auswahl im
Master zu merken. Laufen tuts aber.
Ich kann nun auch das Editing vom Detail aufrufen (TODO: Update - SQL).
Meine grunds�tzliche Frage ... brauche nen Vorschlag ...
Mein Detail zeigt im Moment nur wenige Spalten der eigentlichen Tabelle an.
Die Tabelle hat einen haufen Spalten (Stammt nicht von mir), von der ich
eben im Moment nur ein paar anzeigen lasse.
Was kann ich machen, um aber bei einer Bearbeitung alle Spalten der Tabelle
zur Bearbeitung anzeigen lassen zu k�nnen?
Wahrscheinlich werde ich dann nicht mit der normalen Edit - Funktionalit�t
arbeiten k�nnen.
Was habt Ihr f�r eine Praxis, wenn Ihr viele Daten aus einem Datensatz
�ndert wollt?
Gibt es da die M�glichkeit ein Formular mit allen Feldern anzugeigen, in dem
ich dann den ganzen DS bearbeiten kann?
Wenn ja, kann ich dieses Formular als Zeile innerhalb des DataGrid einf�gen
(So als zwischenzeile)?
Oder wie?
Gru� Mansur
| [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