在2个日期时间选择器之间筛选数据网格视图截止日期行

本文关键字:日期 视图 网格 数据网 筛选 时间 2个 选择器 之间 数据 | 更新日期: 2023-09-27 18:27:04

我有一个数据网格视图,它是通过从XML文件中读取数据来填充的。datagridview有列——模块、描述、截止日期和优先级。截止日期列采用以下格式,例如2012年2月12日,并以字符串形式保存到XML文件中。

在DGV旁边,我有两个日期时间选择器startDate和endDate。

用户选择开始和结束日期,然后按下筛选按钮。一旦他们这样做,DGV应该只显示截止日期列位于开始日期和结束日期之间的行。

我原以为这会相对简单,但我认为我在转换时遇到了问题。当我按下筛选按钮时,else语句将被启动。

这是我到目前为止的代码,如果有点乱的话,很抱歉。

  private void scheduleButton_Click(object sender, EventArgs e)
    {
   DateTimePicker startDate = new DateTimePicker();
        DateTimePicker endDate = new DateTimePicker();
        String startDateConverted = Convert.ToString(startDate.Value);
        String endDateConverted = Convert.ToString(endDate.Value);
        foreach (DataGridViewRow dr in TaskTable2.Rows)
        {
            String deadlineRow = dr.Cells["Deadline"].Value.ToString();
            if (startDateConverted<= deadlineRow && deadlineRow<= endDateConverted)
            {
                MessageBox.Show("Display Row"); // display filtered rows here.
            }
            else
            {
                MessageBox.Show("Please ensure start date is set before end date and that there is a task saved between the dates you selected.");
            }
        }
    }

if语句中的代码应该是显示筛选行的代码,但我也不确定如何对其进行编码。

如果有人能修改我的代码并帮助我解决这个问题,我将不胜感激。

在2个日期时间选择器之间筛选数据网格视图截止日期行

如果

if(starttime<= deadline && deadline<= endtime)

替换MessageBox.Show("显示行");

与MessageBox.Show(dr.ToString());

如果它不起作用,请给我你的TaskTable2 代码