2012-03-08 14 views
2

2 datetimepickers - startScheduleとendScheduleの間のデッドラインを正常にフィルタリングしているコードを終了しました。DataGridViewでフィルタリングされた行を表示

現時点ではifステートメントが開始されていますが、if文に配置するコードがわからないため、フィルタされた行がDataGridViewに表示されません。

datagridviewには、module、description、deadline、priorityという列があります。

条件を満たすif文に適切な行を表示する方法を教えてください。

これ以上の情報が必要な場合はお知らせください。ありがとうございます。ここで

は、私がこれまで持っているコードです:

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

+0

ifステートメントの要件を満たす行が表示される行であると仮定しているか、またはそれを後方に@ user1163762持っていると仮定しますか? – ImGreg

答えて

1

はあなたのDataGridViewを設定している方法によって異なります。理想的には、おそらくSQL側からこれを行うことになりますが、好きな場合はこの方法で行うことができます。あなたのifstatementが満たされていない場合

おそらく、単に行を隠す:

else 
dr.Visible = false; 

を私はあなたが欲しいものを誤解していた場合、私に教えてください。

0

質問:あなたはDataGridViewの.Datasourceとして何を使用していますか?

概念的には細い線ですが、実際にはDataGridViewの行をフィルタリングするわけではありません。むしろ、DGVが表示しているデータソースをフィルタリングします。たとえば、データソースとしてDataTableがある場合は、DataTable.Selectメソッドを使用してデータソースをフィルタできます。私のアプリケーションは通常ビジネスオブジェクトを持っているので、TimVWのFilterListをDGVのデータソースとして設定したオブジェクトの一般的なリストとして使用します。 FilterListには、データソースをフィルタリングするための.Filter()メソッドがあります。 DGVの.Datasourceプロパティのオブジェクトがフィルタ処理されると、DGVは画面に表示された行を更新します。

関連する問題