gpt4 book ai didi

c# - 剑道网格中的日期时间过滤器

转载 作者:太空狗 更新时间:2023-10-29 18:22:20 24 4
gpt4 key购买 nike

我的代码在 C# .NET 中我正在使用 Kendo Grid 版本 2013.2.716.340 和服务器绑定(bind)在网格中显示数据。

在 Kendo UI Grid 中,我有一个 dateTime 列,但列过滤器输入只有一个日期选择器而没有时间选择器。因此,如果我选择选项 IsEqualTo 并给出日期,那么我会得到零结果,因为时间在过滤器中设置为 00:00:00 但列有一些时间值(value)。我想添加时间选择器和日期选择器。

我尝试在我的专栏中这样做,但没有成功:

columns.Bound(o => o.Time).Title("Time").Format("{0:MM/dd/yyyy HH:mm:ss}").Filterable(f => f.UI("DateTimeFilter")).Width("5%");

并已应用以下脚本:

<script type="text/javascript">
function DateTimeFilter(control)
{
$(control).kendoDateTimePicker();
}
</script>

当我从 datetimepicker 中选择准确的 datetime 时上面的代码有效,但当我选择 isequalto 时它不起作用。例如:如果我在我的剑道网格列中显示此 datetime“12/21/2013 07:15:45”,并且当我将此 datetime 复制到 isequalto 过滤器下的选项不提供任何数据。

我还尝试了此 link 上提供的示例它在我的情况下也不起作用。此链接上的示例使用 Ajax 绑定(bind)。我需要在服务器绑定(bind)的情况下应用它。

这是一张显示我想要应用的图像。 Here是图像的链接。如果我将网格中显示的 datetime 复制到过滤器,它应该可以正确过滤并给出结果。

如果有人能帮助我解决我的问题,我将不胜感激。提前致谢。

最佳答案

根据我的经验,kendoDateTimePicker 非常挑剔;如果过滤器的格式不能指定列数据的日期时间精度,则不会找到它。

在您的情况下,您的列格式是 "MM/dd/yyyy HH:mm:ss"(带秒)。 kendoDateTimePicker 的默认格式是 "MM/dd/yyyy h:mm tt"(没有秒和小时规范不匹配)。由于您初始化了默认的 kendoDateTimePicker,无论您在选择器中放入什么,您都无法过滤到 IS EQUAL TO 列值的日期,因为您无法输入它是多少秒。

确保其工作的最简单方法是对列和 kendoDateTimePicker 使用相同的格式。将您的 DateTimeFilter 函数替换为:

function DateTimeFilter(control) 
{
$(control).kendoDateTimePicker({
format: "MM/dd/yyyy HH:mm:ss",
timeFormat: "HH:mm:ss"
});
}

关于 kendoDateTimePicker:

  • format 定义控件的输入值格式
  • timeFormat 定义时间选择器的时间格式
  • interval(上面没有使用它),但它指定时间选择器的每个选项之间的时间间隔(以分钟为单位)。

我没有使用 asp.net mvc,所以我不能 100% 确定这是否能解决您的问题。但是我确信它至少会清除您遇到的一些过滤问题。如果您愿意,我可以为纯 html/javascript 示例提供一个 jsfiddle。

关于c# - 剑道网格中的日期时间过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20884446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com