Я разрабатываю приложение vb.net, и у меня есть dgv, который отображает список сотрудников. У dgv есть несвязанный столбец флажка, который используется при выборе сотрудников для требуемого действия. Я использую rowFilter, чтобы отфильтровать список по отделам или местоположению или независимо от того, что пользователь выбирает.Отфильтруйте DataGridView без потери несвязанных изменений
Если пользователь фильтрует использование Департамента 1 и проверяет флажки рядом с работниками, которых он хочет, чтобы выбрать их, а затем фильтрует в Отдел 2, чтобы выбрать еще нескольких сотрудников, когда мы отфильтровываем обратно в Департамент 1, проверенные сотрудники больше не проверяются.
Как я могу сделать так, чтобы после проверки сотрудника вы можете фильтровать другие параметры с потерей более ранних выборов. Im думает о сохранении проверенного состояния каждого сотрудника к базе данных перед следующим фильтром, но я чувствую, что это, возможно, более быстрый путь. Здесь?
Это код, я использую, чтобы заполнить DGV
sql = "SELECT employee_paysetup.EmployeeNumber AS EmployeeNo, employee_paysetup.FName, employee_paysetup.MName, " _
& "employee_paysetup.LName, (case when employee_paysetup.MName = ' ' then concat(employee_paysetup.FName,' ' , employee_paysetup.LName) else " _
& "concat(employee_paysetup.FName,' ' , employee_paysetup.MName,' ' , employee_paysetup.LName) end) " _
& "AS FullName, costcenters.CostCenterName AS cosName, departments.DepartmentName AS depName, " _
& "positions.PositionName AS posName, locations.LocationName AS locName, CostCenter, Department, Position, EmployeeLocation, PayGroup " _
& "FROM ((((((employee_paysetup LEFT JOIN employees ON employee_paysetup.EmployeeNumber = employees.EmployeeNumber) " _
& "LEFT JOIN costcenters ON employees.CostCenter = costcenters.CostCenterID) " _
& "LEFT JOIN departments ON employees.Department = departments.DepartmentID) " _
& "LEFT JOIN positions ON employees.Position = positions.PositionID) " _
& "LEFT JOIN locations ON employees.EmployeeLocation = locations.LocationID) " _
& "LEFT JOIN paygroups ON employee_paysetup.PayGroup = paygroups.ID) " & filterValue
cmd = New MySqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@Status", "ACTIVE")
da.SelectCommand = cmd
dt.Clear()
da.Fill(dt)
'sort
dt.DefaultView.Sort = "FullName ASC"
dgvEmployees.DataSource = dt.DefaultView
И я фильтровать с помощью
dt.DefaultView.RowFilter = "myFilter"
Преобразуйте сотрудников в «модель представления» и добавьте выбранное свойство, чтобы его можно было связать. – Crowcoder
Crowcoder вы могли бы разработать немного больше, пожалуйста, –
Вы должны отредактировать свое сообщение, чтобы добавить код, показывающий, что вы делаете и как. Мы не знаем ни одной детали. – Plutonix