在 Telerik GridDateTimeColumn 中垂直堆叠日期范围过滤器

Posted

技术标签:

【中文标题】在 Telerik GridDateTimeColumn 中垂直堆叠日期范围过滤器【英文标题】:Vertically stack date range filters in Telerik GridDateTimeColumn 【发布时间】:2015-10-01 15:37:17 【问题描述】:

在 Telerik ASP.NET Ajax 中:

GridDateTimeColumn c = new GridDateTimeColumn();
c.EnableRangeFiltering = true;

这会添加一个带有“从:”和“到:”日历控件输入的日期范围过滤器。控件水平对齐:

From: _____ [CAL] To: ____ [CAL] [FILTER]

有什么方法可以垂直堆叠控件吗?喜欢:

From: ______ [CAL]
TO:   ______ [CAL] [FILTER]

目前水平内联对齐会显着增加列宽并影响用户使用网格的体验。

【问题讨论】:

【参考方案1】:

在不知道你的 GridDateTimeColumns 的 UniqueName 的情况下,下面的极其 hacky 的代码应该可以解决问题:)

protected void rgMyGrid_ItemCreated(object sender, GridItemEventArgs e)

    var fi = e.Item as GridFilteringItem;
    if (fi == null) return;

    foreach (var litTo in from Control c in fi.Controls where c.Controls.Count == 6 select (LiteralControl) c.Controls[3])
            litTo.Text = "<br /><span style=\"padding-right:17px\">To:</span>";          

这里的关键是要知道组成范围过滤控件集合的控件有 6 个。

【讨论】:

【参考方案2】:

有点老套的解决方案,但仍然是一个解决方案......

protected void rgMyGrid_ItemCreated(object sender, GridItemEventArgs e)

    var fi = e.Item as GridFilteringItem;
    if (fi == null) return;
    var litTo = fi["DateCol"].Controls[3] as LiteralControl;
    if (litTo != null) litTo.Text = "<br /><span style=\"padding-right:17px\">To:</span>";

您显然需要将 OnItemCreated 事件处理程序添加到您的网格定义中。

DateCol 是您的 GridDateTimeColumn 的唯一名称

【讨论】:

感谢您的建议,但它并不适合我,因为我事先不知道所有列的名称(例如fi["DateCol"])。有什么方法可以破解您的技巧,将其应用于所有包含日期​​范围过滤器的列?

以上是关于在 Telerik GridDateTimeColumn 中垂直堆叠日期范围过滤器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 asp.net Web 表单在 Telerik 树中实现搜索和过滤

如何限制用户通过 jquery 在 Telerik 上传中上传零大小的文件?

与 DbSelectedDate 相关的 Telerik RadDatePicker 错误

动态更改主题Telerik WPF

Telerik——GridView总结(Winform)

如何在客户端为 Telerik 组合框设置路由值