我有一个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();
}
}任何帮助都是最好的!
发布于 2011-05-03 00:11:12
我的猜测是你把documentsBindingSource和dataRepeater混在一起了。
你在视觉上“看到”的是dataRepeater,而你“得到”的是documentsBindingSource.Current (你检索的是SelectedRowView)
其始终设置为0索引。这是一个非常常见的Winforms控件陷阱。
https://stackoverflow.com/questions/5858090
复制相似问题