DatarePeater削除トップレコードのみを削除します
-
27-10-2019 - |
質問
私にはDatarepeaterがあり、次のコードは選択されたものに関係なく最初のレコードのみを削除します。これがDatarepeaterでそれを行う正しい方法であると完全に確信しているわけではありませんが、より良い解決策を見つけることができませんでした。レコードを選択して削除できる必要があります。
//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();
}
}
どんな助けも素晴らしいでしょう!
解決
私の推測では、あなたはあなたの間で混乱していると思います documentsBindingSource
そしてあなたの dataRepeater
.
あなたが視覚的に「見る」のはDatarepeaterであり、あなたが「得る」ものは documentsBindingSource.Current
(あなたが存在として取得すること SelectedRowView
)
常に0インデックスに設定されます。これは、あまりにもコモンのWinformsコントロールトラップです。
所属していません StackOverflow