2015-02-23 2 views
0

Я пытаюсь фильтровать столбец datetime с помощью ShowHeaderFilterButton = "true".Фильтрация столбца datetime в ASPxGridView с помощью ShowHeaderFilterButton = "true"

Когда я нажимаю элемент управления, он показывает даты, такие как 26/01/2015 00:00:00.

Затем он возвращает «Нет данных для отображения».

Ценности в колонке 26/01/2015 14:47:14 и 26/01/2015 14:47:23.

Я ожидал их показать! Я думаю, что он не показывает никаких данных, потому что это не точное совпадение.

Как я могу заставить это работать правильно?

ответ

0

Я, наконец, получил эту работу. Добавлено

OnProcessColumnAutoFilter ="ASPxGridView1_ProcessColumnAutoFilter" 

и

<Settings ShowFilterRow="True" /> 

в Gridview. И этот код:

protected void ASPxGridView1_ProcessColumnAutoFilter(object sender, 
DevExpress.Web.ASPxGridViewAutoFilterEventArgs e) 
    { 
     if (e.Column != ASPxGridView1.Columns["completionDate"]) return; 

     if (e.Kind == DevExpress.Web.GridViewAutoFilterEventKind.CreateCriteria) 
     { 
      // Creates a new filter criterion and applies it. 
      e.Criteria = null; 
      DateTime yourDate; 
      if (!DateTime.TryParse(e.Value, out yourDate)) return; 
      yourDate = yourDate.Date; 
      DateTime nextDay = yourDate.AddDays(1); 
      e.Criteria = (new OperandProperty("completionDate") >= yourDate) & (new OperandProperty("completionDate") < nextDay); 
     } 
    }