DataRepeater löschen nur Löschen des Top -Datensatzes
-
27-10-2019 - |
Frage
Ich habe einen DataRepeater und der folgende Code löscht nur den ersten Datensatz, unabhängig davon, welche ausgewählt wird. Ich bin nicht ganz davon überzeugt, dass dies der richtige Weg ist, dies mit einem DataRepeater zu tun, aber ich konnte keine bessere Lösung finden. Ich muss in der Lage sein, einen beliebigen Datensatz auszuwählen und zu löschen.
//delete document
private void cmdDeleteDoc_Click(object sender, EventArgs e)
{
if (this.dataRepeater1.CurrentItemIndex == 0)
{
//begin reset
this.dataRepeater1.BeginResetItemTemplate();
// Delete Row Here
DataClasses1DataContext db = new DataClasses1DataContext();
System.Data.DataRowView SelectedRowView;
newCityCollectionDataSet.DocumentsRow SelectedRow;
SelectedRowView = (System.Data.DataRowView)documentsBindingSource.Current;
SelectedRow = (newCityCollectionDataSet.DocumentsRow)SelectedRowView.Row;
var matchedDocument = (from c in db.GetTable<Document>()
where c.DocIDKey == SelectedRow.DocIDKey
select c).SingleOrDefault();
db.Documents.DeleteOnSubmit(matchedDocument);
db.SubmitChanges();
LoadCaseNumberKey(matchedDocument.CaseNumberKey, false, "documents");
this.dataRepeater1.EndResetItemTemplate();
}
}
Jede Hilfe wäre großartig !.
Lösung
Ich vermute, dass Sie zwischen Ihren verwechselt werden documentsBindingSource
und dein dataRepeater
.
Was Sie visuell "sehen", ist der DataRepeater, während Sie "bekommen", das ist das documentsBindingSource.Current
(dass Sie als Sein abrufen SelectedRowView
)
das wird immer auf 0 Index eingestellt. Dies ist eine allzu kommende Winform-Steuerfalle.