【问题标题】:WPF DevExpress Grid date filterstringWPF DevExpress 网格日期过滤器字符串
【发布时间】:2017-02-17 09:34:49
【问题描述】:

我正在尝试将过滤器参数从一个小表单应用到 DevExpress 网格。 我通过将网格中的 FilterString 绑定到 ViewModel 中的字符串来做到这一点。

​目前我构造filterstring如下: ​

filterString += "[" + column.Header + "] >= '" 
                + ((DateTime)searchParameter).ToString("dd-MM-yyyy") 
                + "' AND [" + column.Header + "] < '" 
                + ((DateTime)searchParameter).AddDays(1).ToString("dd-MM-yyyy") 
                + "'";

其中列标题和字段名称来自 columnMap,searchParameter 是要过滤的日期。

过滤器已正确应用,并显示在网格底部。您也可以对其进行编辑,但只有字符串值显示在 网格顶部的过滤器行。日期或数字未显示在那里。

如果我还可以获得日期和数字以显示在过滤器行中 我设置了一个过滤字符串?

目前在过滤名称时看起来像这样(数据已被删除):

【问题讨论】:

  • 通过调用 ((DateTime)searchParameter).ToShortDateString() 而不是 ((DateTime)searchParameter).ToString("dd-MM-yyyy") 尝试使用系统默认日期格式。可能 DX 无法正确理解您的日期。
  • 我尝试了一些不同的格式,包括那个,但是没有用。

标签: c# wpf datetime grid devexpress


【解决方案1】:

这应该可以帮助你:

GridColumn.FilterMode Property

DX suggests 将日期列的GridColumn.FilterMode 属性设置为DisplayText

【讨论】:

  • 这不是我真正想要的,因为你失去了下拉菜单,但它没有用:(
  • @SebastiaanHoedeman 您能否发布过滤器行当前外观的屏幕截图,我的意思是没有 Date 和 Number 值?
  • 我添加了一个屏幕截图,显示正在过滤的名称。如您所见,名称显示在底部,过滤器行显示在顶部。单击右下角的铅笔也可以对其进行编辑,因此一切正常。对于日期和数字,除了它们没有显示在顶部的过滤器行中之外,它是相同的。
  • @SebastiaanHoedeman 是的,我明白了。您想如何在过滤器行中指定日期?通过编辑 2017-02-17 之类的文本字符串或使用 DatePicker 控件?或者您不允许用户更改过滤行中的日期,而只是将它们显示为字符串?
  • 日期应该可以使用日期选择器在过滤器行中编辑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
相关资源
最近更新 更多