Javascript ASP.NET MVC:使用kendoDatePicker筛选kendoGrid的问题
我正在与一个问题斗争,但仍然无法解决它。事实上,我有一个肯多格里德,有4列,其中两列是文本和日期。 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 =>
<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
}