我的数据网格中的一个列( dataGridView1 )被称为 DatePaid ,并且点击了按钮,即:
private void viewOverdue_Click(object sender, EventArgs e)
{
// details here
}
我希望它在 DatePaid 列中显示数据网格中2周或更长时间的所有行(使用变量 cRentStart 作为起点 - 这是一个日期本身是dd / mm / yyy格式)。所有日期必须采用dd / mm / yyyy格式。
答案 0 :(得分:1)
您必须过滤完整的记录列表,然后重新绑定新的过滤列表。
private void viewOverdue_Click(object sender, EventArgs e)
{
Records[] filteredRecords = allRecords.Where(x => x.DatePaid <= cRentStart).ToArray();
dateGridView1.DataSource = filteredRecords;
dateGridView1.DataBind();
}
如果两个值实际上都是日期类型,则此方法应该有效,否则您必须将值转换为日期。
如果它们是字符串,例如,查询应如下所示:
Records[] filteredRecords = allRecords.Where(x => Convert.ToDateTime(x.DatePaid) <= Convert.ToDateTime(cRentStart)).ToArray();
请注意,只有当应用程序的文化将您的字符串视为dd / MM / yyyy时,此转换才有效,如果您的文化是en-US,例如它会将其视为MM / dd / yyyy
记录类应该由您自己的课程替换