Datarepeater удалить только удаление верхней записи - PullRequest
0 голосов
/ 02 мая 2011

У меня есть повторитель данных, и следующий код удаляет ТОЛЬКО ПЕРВАЮ запись независимо от того, какая из них выбрана.Я не совсем уверен, что это правильный способ сделать это с помощью переносчика данных, но я не смог найти лучшего решения.Мне нужно иметь возможность выбрать любую запись и удалить ее.

    //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();
        }


    }

Любая помощь будет отличной! *

1 Ответ

1 голос
/ 02 мая 2011

Я предполагаю, что вы смешались между вашим documentsBindingSource и вашим dataRepeater.

То, что вы «видите» визуально - это dataRepeater, а то, что вы «получаете», - это documentsBindingSource.Current (который вы извлекаете как SelectedRowView)
, который всегда имеет значение 0 index. Это слишком распространенная ловушка управления Winforms.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...