Filterung ein datagridview mit Daten

Ich versuche zu filtern, eine Frist Spalte in einem datagridview von 2 datetimepickers - startDate und endDate.

datagridview ist TaskTable2,
datetimepicker1 ist startSchedule,
datetimepicker2 ist endSchedule und
Frist im datagridview ist deadlineRow

Bisher habe ich folgenden code, der erfolgreich den Zeilen, unsichtbar, die nicht zwischen den gewählten start-und end-Datum.

private void scheduleButton_Click(object sender, EventArgs e)
    {

        DateTime startSchedule = startDate.Value.Date;
        DateTime endSchedule = endDate.Value.Date;

        if (startSchedule <= endSchedule)//runs foreach loop if startdate and enddate are valid
        {
            foreach (DataGridViewRow dr in TaskTable2.Rows)//loops through rows of datagridview
            {
                string deadline = dr.Cells["Deadline"].Value.ToString(); //gets deadline values
                DateTime deadlineRow = Convert.ToDateTime(deadline); //converts deadline string to datetime and stores in deadlineRow variable

                if (startSchedule <= deadlineRow && deadlineRow <= endSchedule) //filters deadlines that are => startDate and <= endDate
                {
                    dr.Visible = true; //display filtered rows here.
                }
                else
                {
                    dr.Visible = false; //hide rows that are not beteen start and end date.
                }

            }
        }
        else
        {     
            MessageBox.Show("Please ensure Start Date is set before End Date."); //ensures user selects an end date after the start date.
        }
    }

Allerdings habe ich ein paar bestehende Probleme:

  1. Stürzt die Anwendung ab und ich bekomme folgende Fehlermeldung, wenn ich wählen Sie einen Datumsbereich, der angezeigt werden keine Aufgaben:

'Zeile, die mit der Währungs-manager die position, nicht unsichtbar gemacht'

  1. Ich habe ein drucken-button, der soll drucken Sie die gefilterten Ergebnisse.
    Es ist jedoch druckt alle gespeicherten Daten in der datagridview, wenn auch einige Zeilen visible=false durch drücken der Schaltfläche Zeitplan, so dass ich vermute, ich muss eine andere Herangehensweise um die Zeilen zu entfernen, anstatt Sie zu verstecken.

Das datagridview gebunden ist, um eine XML-Datei, damit die Daten entfernt werden können, aus dem datagridview zum filtern und drucken aslong, wie Sie bleiben in der XML-Datei.

Jede Hilfe wäre sehr geschätzt werden!

Danke

InformationsquelleAutor Rob | 2012-03-13
Schreibe einen Kommentar