过滤网格数据在FF(mozilla)和IE中不起作用



我正在使用kendo ui控件。我的功能是根据日期-时间和下拉选择筛选网格。这在chrome上有效,但在FF和IE中无效。

                var gridResult = $('#Grid').data("kendoGrid");
                    var condition = {
                        logic: "and",
                        filters: [
                            { field: "Category", operator: "equals", value: $("#nw").val() },
                            { field: "Device", operator: "equals", value: $("#pro").val() },
                            { field: "Orig", operator: "equals", value: $("#work").val() },
                            { field: "Term", operator: "equals", value: $("#network").val() }
                        ]
                    };
                    if (mindate !== null) {
                        condition.filters.push({ field: "Time", operator: "ge", value: new Date(mindate) });
                    }
                    if (maxdate !== null) {
                        maxdate = new Date(maxdate);
                        maxdate.setHours(23, 59, 59, 999);
                        condition.filters.push({ field: "Time", operator: "lt", value: maxdate });
                    }
                    gridResult.dataSource.filter(condition);
                return false;
            });
        $('#fromdatetimepicker').attr('readonly', false);
        $('#todatetimepicker').attr('readonly', false);
      }

当我在firefox中调试时,我没有发现aby bug。任何人都可以查看代码,并告诉我哪里错了吗?

我一直在测试您的代码,但没有发现任何问题,此外,您在末尾有一个额外的),但这可能是因为该函数是从更大的代码段中截取的。

然而,有几件事可能会导致这个问题,并且有很多代码丢失,所以我不能确定。一些浏览器试图通过忽略您所犯的错误来帮助您。这可以使它在Chrome中工作,但在FF和IE中不起作用。处理这一问题的最佳方法是在每次调用Filter方法时仔细检查代码并添加确认值的验证。以下是我给你的建议:

  • 在Internet Explorer中调试时,请使用IE 11并使用F12调试工具
  • 您检查mindatemaxdate是否为空,但如果它们是undefined或包含空值,则它们将通过该测试,并将添加到筛选器中,即使它们未设置
  • 在将mindatemaxdate添加到过滤器之前,您不需要检查它们是否为有效日期,以及是否能够成功创建JavaScript date变量。这可能是错误的来源,具体取决于脚本中的其他代码
  • 您直接在过滤器中使用$("#network").val()等中的值,而不验证它们,这可能会在将来造成问题。但这并不是造成这个错误的原因

编辑:编码

您需要确保网页的编码是正确的。请确保这两行存在于html代码的head部分中。如果使用ASP.NET MVC,则可以将这两个文件添加到ViewsShared_Layout.cshtml文件中。如果使用ASP.NET表单,则可以将它们添加到主文件中。如果你使用PHP,你只需要把它们放在head部分。

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">

最新更新