DataRepeater supprimer uniquement la suppression top enregistrement
-
27-10-2019 - |
Question
J'ai un DataRepeater et le code suivant supprime uniquement le dossier FIRST quel que soit celui qui est sélectionné. Je ne suis pas tout à fait convaincu que c'est la bonne façon de le faire avec un DataRepeater mais je ne pouvais pas trouver une meilleure solution. Je dois être en mesure de sélectionner tout enregistrement et le supprimer.
//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();
}
}
Toute aide serait génial!.
La solution
Je suppose que votre sont mélangés entre votre documentsBindingSource
et votre dataRepeater
.
Ce que vous « voyez » est visuellement le DataRepeater, tout ce que vous « get », est le documentsBindingSource.Current
(que vous extrayez comme SelectedRowView
)
qui est toujours à 0 index. Ceci est un piège de contrôle Winforms tout trop commun.