kum*_*atp 8 .net c# datetimepicker asp.net-mvc-3 kendo-grid
我的代码在C#.NET中我正在使用Kendo Grid版本2013.2.716.340和服务器绑定来显示网格中的数据.
在Kendo UI Grid中,我有一个dateTime列,但列过滤器输入只有一个日期选择器但没有时间选择器.因此,如果我选择该选项IsEqualTo并给出一个日期,那么我得到零结果,因为时间00:00:00在过滤器中设置,但列有一些时间值.我想添加时间选择器和日期选择器.
我尝试在我的专栏上执行此操作,但它不起作用:
columns.Bound(o => o.Time).Title("Time").Format("{0:MM/dd/yyyy HH:mm:ss}").Filterable(f => f.UI("DateTimeFilter")).Width("5%");
Run Code Online (Sandbox Code Playgroud)
并已应用以下脚本:
<script type="text/javascript">
function DateTimeFilter(control)
{
$(control).kendoDateTimePicker();
}
</script>
Run Code Online (Sandbox Code Playgroud)
上面的代码在我datetime从精选中选择时起作用datetimepicker但在我选择时它不起作用isequalto.例如:如果我datetime在我的剑道网格列中显示"12/21/2013 07:15:45",当我将其复制datetime到isequalto过滤器下的选项时,它不会提供任何数据.
此外,我尝试了此链接提供的示例 它也没有在我的情况下工作.此链接上的示例使用Ajax绑定.我需要在服务器绑定的情况下应用它.
这是附加图像,显示我想要应用的内容.这是图像的链接.如果我将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"
});
}
Run Code Online (Sandbox Code Playgroud)
关于kendoDateTimePicker:
format 定义控件的输入值格式timeFormat 定义时间选择器的时间格式interval (上面没有使用它),但是它指定了时间选择器的每个选项之间的时间间隔(以分钟为单位).我没有使用asp.net mvc,所以我不能100%确定这是否能解决你的问题.但是我确信它至少会清除你的一些过滤问题.如果你愿意的话,我可以为纯粹的html/javascript示例提供一个jsfiddle.
| 归档时间: |
|
| 查看次数: |
11165 次 |
| 最近记录: |