Как выполнить код после того, как установлен определенный флажок - PullRequest
1 голос
/ 20 октября 2011

У меня есть сетевое представление с несколькими флажками. Когда флажок Готово установлен, мне нужно выполнить код linq для обновления конкретной таблицы. Как узнать, не является ли этот конкретный флажок грязным, и где я могу написать код для передачи значений, которые мне нужно передать в таблицу. Обратите внимание, что это не та таблица, на которой основано представление данных.

Спасибо.

РЕДАКТИРОВАТЬ:

 private void propertyInformationDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)propertyInformationDataGridView.Rows[e.RowIndex].Cells[3];

        DataGridViewRow row = propertyInformationDataGridView.Rows[e.RowIndex] as DataGridViewRow;

        System.Data.DataRowView SelectedRowView;
        newCityCollectionDataSet.PropertyInformationRow SelectedRow;

        SelectedRowView = (System.Data.DataRowView)propertyInformationBindingSource.Current;
        SelectedRow = (newCityCollectionDataSet.PropertyInformationRow)SelectedRowView.Row;

        if (Convert.ToBoolean(checkCell.EditedFormattedValue) == true)
        {
            DataClasses1DataContext dc = new DataClasses1DataContext();

            var matchedCaseNumber = (from c in dc.GetTable<PropertyInformation>()
                                     where c.CaseNumberKey == SelectedRow.CaseNumberKey
                                     select c).SingleOrDefault();

            reportsSent newReport = new reportsSent();
            newReport.CaseNumberKey = SelectedRow.CaseNumberKey;
            dc.reportsSents.InsertOnSubmit(newReport);
            dc.SubmitChanges();

        }
    }

Нужно ли закончить это в какой-то момент, это проблема?

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Это из моего кода, все, что вам нужно сделать, это создать событие CellContentClick для вашей таблицы данных.

Самый простой способ сделать это - выбрать Datagridview, перейти к свойствам и щелкнуть молнией. Прокрутите вниз до «CellContentClick» и дважды щелкните в пустом поле. Это автоматически сгенерирует метод, в который нужно вставить следующий код.

Убедитесь, что вы переименовали мои экземпляры "CustomersDataGridView" в любое имя, которое у вас есть, intellisense должно выделять недопустимый код красным цветом, который вам нужно заменить.

Кроме того, «9», которое вы видите в объявлении checkCell, необходимо изменить на индекс вашего флажка «Завершено». Если он находится в 3-й ячейке слева, поставьте 2 вместо 9, поскольку индексирование основано на 0.

РЕДАКТИРОВАТЬ, чтобы исправить комментарии:

private void CustomersDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{

    if (e.ColumnIndex.ToString() == "9")
    {
        DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)CustomersDataGridView.Rows[e.RowIndex].Cells[9];
        DataGridViewRow row = CustomersDataGridView.Rows[e.RowIndex] as DataGridViewRow;

        if (Convert.ToBoolean(checkCell.EditedFormattedValue) && CustomersDataGridView.IsCurrentCellDirty)
        {
            //Do Work here.
            var z = row.Cells[0].Value; // Fill in the brackets with the column you want to fetch values from
            //z in this case would be the value of whatever was in the first cell in the row of the checkbox I clicked
        }
    }
}
1 голос
/ 20 октября 2011

Вы можете сделать это в CheckedChanged-Event

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    // Do what you have to do...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...