2012-03-08 65 views
2

我剛剛完成了一些成功過濾2個datetimepickers - startSchedule和endSchedule之間截止日期的代碼。在DataGridView中顯示已過濾的行

目前,當我希望if語句被啓動時,我不知道要在if語句中放入哪個代碼來顯示datagridview中的過濾行。

datagridview包含以下列 - 模塊,描述,截止日期,優先級。

如何在滿足條件的if語句中顯示適當的行。

如果您需要更多信息,請告知我,謝謝。

這裏是我到目前爲止的代碼:你如何有你的DataGridView設置

private void scheduleButton_Click(object sender, EventArgs e) 
    { 

     DateTime startSchedule = startDate.Value.Date; 
     DateTime endSchedule = endDate.Value.Date; 
      foreach (DataGridViewRow dr in TaskTable2.Rows) 
       { 
        string deadline = dr.Cells["Deadline"].Value.ToString(); 
        DateTime deadlineRow = Convert.ToDateTime(deadline); 
        if (startSchedule <= deadlineRow && deadlineRow <= endSchedule) 
        { 
         MessageBox.Show("Display Row"); // display filtered rows here. 

        } 
       } 
      } 
+0

任何人都有什麼代碼放在if語句代碼部分的想法? – Rob 2012-03-08 20:12:30

+0

我認爲符合if語句要求的行是你想要顯示的行,還是我有向後的@ user1163762? – ImGreg 2012-03-08 20:29:31

回答

1

依賴。理想情況下,您可能會從SQL的這一方面做到這一點,但如果您願意的話,您可以這樣做。

也許只是隱藏的行,如果你的ifstatement不滿足:

else 
dr.Visible = false; 

讓我知道如果我誤解你想要什麼。

0

反問:你用什麼作爲DataGridView的.Datasource?

這是一個很好的概念,但實際上並沒有過濾DataGridView的行。而是過濾DGV正在顯示的數據源。例如,如果您有一個DataTable作爲數據源,則可以使用DataTable.Select方法來過濾數據源。由於我的應用程序通常具有業務對象,因此我使用TimVW的FilterList作爲對象的通用列表,我將其設置爲DGV的數據源。 FilterList有一個.Filter()方法來過濾數據源。只要過濾DGV的.Datasource屬性中的對象,DGV就會更新屏幕上顯示的行。