使用ShowHeaderFilterButton =“true”过滤ASPxGridView中的datetime列

时间:2015-02-23 16:21:53

标签: c# asp.net devexpress aspxgridview

我正在尝试使用ShowHeaderFilterButton =" true"来过滤日期时间列。

单击控件时,显示日期,例如26/01/2015 00:00:00。

然后它返回"没有要显示的数据"。

该栏的数据是26/01/2015 14:47:14和26/01/2015 14:47:23。

我期待他们出现!我猜它没有显示任何数据,因为它不完全匹配。

如何让它正常工作?

1 个答案:

答案 0 :(得分: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);
         }
    }