DataGrid按日期过滤

时间:2014-04-13 18:07:06

标签: c# winforms date datagrid

所以再一次,我遇到了一个问题,我之前从未使用过DataGrids,所以这可能就是问题所在。

我的问题是我有一个datagrid,其中一列是Date,每行都有一个日期,这是一个格式如此的字符串。

30/06/1995

我的表单上有两个文本框,一个是开始日期,另一个是结束日期,我想要的是Datagrid只在开始和结束之间显示行/记录日期。当用户输入日期时并应用过滤器(我有一个按钮,应用我的所有过滤器,这是我最后一个过滤器,我正在努力)

在sudo代码术语中,我理解需要做什么,但是当涉及到C#时,我没有任何线索。

到目前为止我正在使用这样的东西。

//日期和时间过滤

        if (rangeCheckBox.Checked)
        {

            DataTable dt = new DataTable();
            foreach (DataGridViewColumn col in dataGridView1.Columns)
            {
                dt.Columns.Add(col.HeaderText);
            }
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                DataRow dRow = dt.NewRow();
                foreach (DataGridViewCell cell in row.Cells)
                {
                    dRow[cell.ColumnIndex] = cell.Value;
                }
                dt.Rows.Add(dRow);
            }
            DataView dv = new DataView(dt);

            dv.RowFilter = "(Date >= #" +                           Convert.ToDateTime(startDate.Text).ToString("MM/dd/yyyy") + "# And Date <= #" + Convert.ToDateTime(endDate.Text).ToString("MM/dd/yyyy") + "# )";

//以上不能正确格式化,不知道为什么

            var source = new BindingSource();

            source.DataSource = dv;

            dataGridView1.DataSource = source;

此代码似乎没有做任何事情,我今天搜索了几个小时并没有太多运气,我之前也发布了这个,但没有运气。

非常感谢

EDIT :::

公共类ImagesInfo     {

    public string FileName { get; set; } 
    public string Description { get; set; }
    public string Category { get; set; }
    public string Date { get; set; }
    public string Comments { get; set; }

    public override string ToString()
    {
        return FileName;//Used for the Selection of Picture combo box

    }



    The records come from a formatted text doc they are then put into this list

     public static List<ImagesInfo> images = new List<ImagesInfo>();

0 个答案:

没有答案