所以再一次,我遇到了一个问题,我之前从未使用过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>();