Kendo 抑制 DatePicker
Kendo suppress DatePicker
我们正在使用 Kendo 和 ASP.NET MVC。我有一个包含多个不同列的 Kendo 网格。两列包含时间。虽然它们是 DateTime 对象,但我们只显示它们的时间分量。当用户 select 过滤其中一列以及空白文本输入框时,他们有 DatePicker,可以让他们通过 month/day 选择日期。显然,这对一天中的某个时间没有意义。
有没有办法抑制DatePicker?理想情况下,他们会使用 TimePicker,但我们可以没有它。我已经看到几个示例,这些示例说明如何使用 JavaScript 执行此操作,但对于 MVC 却一无所获。 MVC 甚至可能吗?
我们在服务器(SQL 服务器)上进行所有排序和过滤,因为我们进行服务器端分页(我们不想加载 1,000,000 行,只是为了显示一些)。所以我们不依赖 Kendo 进行排序和过滤,只依赖 UI.
我们尝试过的其他事情:
将时间更改为字符串。这摆脱了 DatePicker,但过滤器选项包括对字符串有意义的运算符,但不一定是时间。并且缺少时间运算符("Is before"、"Is after" 等)。
自己构建过滤器选项:这是我们将 DateTimes 更改为字符串后的一次尝试。这只允许我们添加对字符串有意义的过滤器,而不是 DateTimes。
这是我们的 Razor 标记的示例。相当标准的东西:
@(Html.Kendo().Grid<FModel>()
.Name("FStuff")
.Columns(c =>
{
c.Bound(m => m.Date);
c.Bound(m => m.Location);
c.Bound(m => m.Name);
c.Bound(m => m.PurchaseOrderID);
c.Bound(m => m.Start); // time column
c.Bound(m => m.End); // time column
})
.Pageable(p => p
.Enabled(true)
.PageSizes(new List<int> { 10, 25, 999 })
.Refresh(true))
... other options ...
有人知道我们应该采取什么方法吗? Kendo 我们想做的事情可行吗?
在您的时间列中,像这样配置 .Filter()
选项:
c.Bound(x => x.Start).Filterable(f => f.UI(GridFilterUIRole.TimePicker))
您可能还想考虑使用 .Format("{0:t}")
(或您喜欢的任何格式)设置格式
我们正在使用 Kendo 和 ASP.NET MVC。我有一个包含多个不同列的 Kendo 网格。两列包含时间。虽然它们是 DateTime 对象,但我们只显示它们的时间分量。当用户 select 过滤其中一列以及空白文本输入框时,他们有 DatePicker,可以让他们通过 month/day 选择日期。显然,这对一天中的某个时间没有意义。
有没有办法抑制DatePicker?理想情况下,他们会使用 TimePicker,但我们可以没有它。我已经看到几个示例,这些示例说明如何使用 JavaScript 执行此操作,但对于 MVC 却一无所获。 MVC 甚至可能吗?
我们在服务器(SQL 服务器)上进行所有排序和过滤,因为我们进行服务器端分页(我们不想加载 1,000,000 行,只是为了显示一些)。所以我们不依赖 Kendo 进行排序和过滤,只依赖 UI.
我们尝试过的其他事情:
将时间更改为字符串。这摆脱了 DatePicker,但过滤器选项包括对字符串有意义的运算符,但不一定是时间。并且缺少时间运算符("Is before"、"Is after" 等)。
自己构建过滤器选项:这是我们将 DateTimes 更改为字符串后的一次尝试。这只允许我们添加对字符串有意义的过滤器,而不是 DateTimes。
这是我们的 Razor 标记的示例。相当标准的东西:
@(Html.Kendo().Grid<FModel>()
.Name("FStuff")
.Columns(c =>
{
c.Bound(m => m.Date);
c.Bound(m => m.Location);
c.Bound(m => m.Name);
c.Bound(m => m.PurchaseOrderID);
c.Bound(m => m.Start); // time column
c.Bound(m => m.End); // time column
})
.Pageable(p => p
.Enabled(true)
.PageSizes(new List<int> { 10, 25, 999 })
.Refresh(true))
... other options ...
有人知道我们应该采取什么方法吗? Kendo 我们想做的事情可行吗?
在您的时间列中,像这样配置 .Filter()
选项:
c.Bound(x => x.Start).Filterable(f => f.UI(GridFilterUIRole.TimePicker))
您可能还想考虑使用 .Format("{0:t}")
(或您喜欢的任何格式)设置格式