Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP.NET MVC:使用kendoDatePicker筛选kendoGrid的问题_Javascript_Asp.net Mvc_Kendo Grid - Fatal编程技术网

Javascript ASP.NET MVC:使用kendoDatePicker筛选kendoGrid的问题

Javascript ASP.NET MVC:使用kendoDatePicker筛选kendoGrid的问题,javascript,asp.net-mvc,kendo-grid,Javascript,Asp.net Mvc,Kendo Grid,我正在与一个问题斗争,但仍然无法解决它。事实上,我有一个肯多格里德,有4列,其中两列是文本和日期。 kendoGrid的定义如下: <div class="content-grid"> @(Html.Kendo().Grid<System.Data.DataRow>() .Name("grdTraceLog") .Columns(columns =>

我正在与一个问题斗争,但仍然无法解决它。事实上,我有一个肯多格里德,有4列,其中两列是文本和日期。 kendoGrid的定义如下:

<div class="content-grid">

            @(Html.Kendo().Grid<System.Data.DataRow>()
                  .Name("grdTraceLog")
                  .Columns(columns =>
                      {
                          columns.Bound("TraceId").Visible(false);
                          columns.Bound("DateTime").Title("Fecha/Hora Novedad").Format("{0:dd-MM-yyyy}");
                          columns.Bound("Type").Title("Tipo");
                          columns.Bound("Message").Title("Mensaje");
                          columns.Bound("Terminal").Title("Terminal");

                      })

                        .Pageable()
                        .Sortable()
                        .DataSource(dataSource => dataSource
                                                    .Ajax()
                                                    .PageSize(10)
                                                    .ServerOperation(false)
                                                    .Model(model =>
                                                        {
                                                            model.Id("TraceId");
                                                            model.Field("TraceId", typeof(int));
                                                            model.Field("DateTime", typeof(DateTime));
                                                            model.Field("Type", typeof(string));
                                                            model.Field("Message", typeof(string));
                                                            model.Field("Terminal", typeof(string));
                                                        })
                                                    .Read(read => read.Action("Read", "TraceLog"))
                )
            )
        </div>
单击按钮时,网格将保持在无限循环中,如下图所示。如果我评论datepickers,一切都正常,所以我怀疑问题在格式或其他方面。。。我真的不知道。


我需要一些帮助!有人能用这种方法制造一些过滤器?。。。任何建议都是感谢的

我解决了!!编译器似乎没有进行任何从“字符串”到“日期时间”的转换来进行比较。因此,需要将javascript变量显式转换为日期。这是因为我在网格中将字段指定为“DateTime”。 以下是您需要更改的行:

if ($dpFrom)     {
    $filter.push({ field: "DateTime", operator: "gt", value: new Date($dpFrom) }); //gt = greater than
}

if ($dpTo) {
    $filter.push({ field: "DateTime", operator: "lt", value: new Date($dpTo) }); // lt = less than
}

控制台上有错误/异常吗?我在那里发布了解决方案。。。不管怎样,谢谢你!:)
$("#btnFilter").click(function() {
                $filter = new Array();
                $terminal = $("#txbTerminal").val();
                $dpFrom = $("#dpDateFrom").val();
                $dpTo = $("#dpDateTo").val();
                if ($terminal) {
                    $filter.push({ field: "Terminal", operator: "contains", value: $terminal });
                }

                if ($dpFrom) {
                    $filter.push({ field: "DateTime", operator: "gt", value: $dpFrom }); //gt = greater than
                }

                if ($dpTo) {
                    $filter.push({ field: "DateTime", operator: "lt", value: $dpTo }); // lt = less than
                }

                var grid = $("#grdTraceLog").data("kendoGrid");
                grid.dataSource.filter($filter);

            });
if ($dpFrom)     {
    $filter.push({ field: "DateTime", operator: "gt", value: new Date($dpFrom) }); //gt = greater than
}

if ($dpTo) {
    $filter.push({ field: "DateTime", operator: "lt", value: new Date($dpTo) }); // lt = less than
}