2012-03-08 2 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는 화면에 표시된 행을 업데이트합니다.