DataRepeater Elimina solo eliminazione del record top
-
27-10-2019 - |
Domanda
Ho un DataRepeater e il seguente codice elimina solo il primo record indipendentemente da quale sia selezionato. Non sono del tutto convinto che questo sia il modo corretto per farlo con un data -matepeater, ma non sono riuscito a trovare una soluzione migliore. Devo essere in grado di selezionare qualsiasi record ed eliminarlo.
//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();
}
}
Qualsiasi aiuto sarebbe grande!.
Soluzione
La mia ipotesi è che sei confuso tra il tuo documentsBindingSource
e il tuo dataRepeater
.
Quello che "vedi" visivamente è il DataRepeater, mentre quello che "ottieni", è il documentsBindingSource.Current
(Che recuperi come essere SelectedRowView
)
che è sempre impostato su 0 indice. Questa è una trappola di controllo Winforms fin troppo comune.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow