kLeiner_HobBes Geschrieben 22. März 2005 Teilen Geschrieben 22. März 2005 Irgendwie steh' ich wohl auf dem Schlauch: Ich habe ein DataGrid, nun möchte ich zu einem bestimmten Zeitpunkt feststellen, in welchem "Modus" die Eingabe, bzw. der Focus ist: a) Ist eine ganze Zeile markiert oder ist er im "Eingabemodus" in einer bestimmten Zelle und läßt den User editieren? In Abhängigkeit davon soll das Programm nämlich unterschiedlich reagieren. Ich hab versucht, mit DataGrid.CurrentCell irgendwas anzufangen, dies hilft genausowenig, wie die Information, die mir DataGrid.IsSelected() liefert Wenn da jemand nen Tip oder schon Erfahrung mit hat, wäre ich sehr dankbar Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
adragon Geschrieben 22. März 2005 Teilen Geschrieben 22. März 2005 Das Datagrid hat ja bestimmte Ereignisse - EditCommand : wenn was verändert wird - ItemCommand...... usw... Datagrid -> Eigenschaften -> Ereignis somit kannst du vereinzelt auf Aktionen reagieren.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arrayhunter Geschrieben 22. März 2005 Teilen Geschrieben 22. März 2005 normalerweise müsste dir DataGrid.IsSelected() etwas liefern. DataGrid.isSelected() liefert bei mir für alle blau markierten Zeilen True. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 22. März 2005 Autor Teilen Geschrieben 22. März 2005 zu adragon: Ich vergaß zu sagen, daß es ne Windows.Forms-Anwendung ist. Dort sind diese Events nicht vorhanden. Und irgendwie hab ich auch kein Ereignis gefunden, was mir diese Unterscheidung ermöglicht. zu arrayhunter: Klar, IsSelected() liefert mir dasselbe Ergebnis wie bei dir. Dennoch kann ich damit die beiden oben genannten Fälle nicht unterscheiden, da er mir bei beiden Version true liefert Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arrayhunter Geschrieben 22. März 2005 Teilen Geschrieben 22. März 2005 zu arrayhunter: Klar, IsSelected() liefert mir dasselbe Ergebnis wie bei dir. Dennoch kann ich damit die beiden oben genannten Fälle nicht unterscheiden, da er mir bei beiden Version true liefert ok, ich dachte, du wolltest generell auf die Markierung eines Eintrages reagieren beispiel aus der msdn: colNum = dataGrid1.CurrentCell.ColumnNumber; rowNum = dataGrid1.CurrentCell.RowNumber; // Get the selected DataGridColumnStyle. DataGridColumnStyle dgCol; dgCol = dataGrid1.TableStyles[0].GridColumnStyles[colNum]; // Invoke the BeginEdit method to see if editing can begin. if (dataGrid1.BeginEdit(dgCol, rowNum)){ // Edit row value. Get the DataTable and selected row. DataTable myTable; DataRow myRow; // Assuming the DataGrid is bound to a DataTable. myTable = (DataTable) dataGrid1.DataSource; myRow = myTable.Rows[rowNum]; // Invoke the Row object's BeginEdit method. myRow.BeginEdit(); myRow[colNum] = "New Value"; // You must accept changes on both DataRow and DataTable. myRow.AcceptChanges(); myTable.AcceptChanges(); dataGrid1.EndEdit(dgCol, rowNum, false); } else{ Console.WriteLine("BeginEdit failed"); Beispiel zu finden unter DataGrid.BeginEdit-Methode Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
adragon Geschrieben 22. März 2005 Teilen Geschrieben 22. März 2005 zu adragon: Ich vergaß zu sagen, daß es ne Windows.Forms-Anwendung ist. Dort sind diese Events nicht vorhanden. Und irgendwie hab ich auch kein Ereignis gefunden, was mir diese Unterscheidung ermöglicht. achsoo.. ich dachte es wäre für ne aspx site ok dann kann ich dir mometan auch nicht weiterhelfen.. :cool: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 31. März 2005 Autor Teilen Geschrieben 31. März 2005 Danke erstmal für die Hilfe. Habe es mittlerweile so gelöst, daß ich bei den jeweiligen DataGridTextBox'en aller Spalten zwei Methoden an OnEnter und OnLeave drangehängt habe und somit den Status ermitteln kann. Nun habe ich folgendes Problem. Wenn der Benutzer im DataGrid in der untersten Zeile, die als "neue" Zeile ja mit einem Sternchen markiert ist, was eingibt, dann wird ja automatisch eine neue DataRow eingefügt, allerdings noch nicht in die dahinterhängende DataTable. Nun muß ich aber auf diese temporäre DataRow zugreifen können, habe aber partout nichts gefunden. Vielleicht hat schon jemand Erfahrung damit gemacht und kann mir da helfen. Danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arrayhunter Geschrieben 1. April 2005 Teilen Geschrieben 1. April 2005 Auf die eigentliche "in der Luft hängende" Datenzeile kann man über die Row-Eigenschaft des DataRowView-Objektes zugreifen. und die musst du dann speichern Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.