【问题标题】:Javascript runtime error: "object doesn't support property or method" in Internet ExplorerJavascript 运行时错误:Internet Explorer 中的“对象不支持属性或方法”
【发布时间】:2014-09-13 01:10:25
【问题描述】:

我正在使用剑道网格,它们可以很好地用于 CRUD 操作。现在,我想通过将.Filterable() 选项添加到网格规范来添加过滤。这是一些代码:

<div id="datagrid">
    @(Html.Kendo().Grid<SustIMS.Models.ConcessionModel>()
    .Name("datagrid_Concessions")
    .Columns(columns =>
    {
        columns.Bound(c => c.Code).Title("Code");
        columns.Bound(c => c.Description).Title("Description");
        columns.Bound(c => c.TrafficOpeningDate).Title("Traffic Opening Date");
        columns.Bound(c => c.CreationDate).Title("Creation Date");
    })
    .HtmlAttributes(new { style = "height: 534px;" })
    .Filterable() // here's the filterable option
    .Selectable()
    .Events(e => e.Change("onChange"))
    .Pageable(pageable => pageable
        .Refresh(true))
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(15)
        .Read(read => read.Action("GetConcessions", "MasterData"))
    )
    )
</div>

网格呈现完美,现在网格的列标题上显示了一些过滤器图标:

但是当我单击一个时,弹出窗口会打开半秒钟并抛出错误。我正在使用 Visual Studio 2010,调试器显示一个弹出窗口 javascript runtime error: object doesn't support property or method 'addBack'.

此外,它会打开文件kendo.all.min.js,并在addBack 方法所在的代码行上突出显示。

注意:我已经在 Chrome 和 Firefox 上进行了测试,并且运行良好。该问题仅在使用 Internet Explorer(版本 11)时存在。

有什么帮助吗?

【问题讨论】:

  • 您使用的是哪个kendo.all.min.js 版本。
  • @Jaimin,我如何查看文件版本?剑道用户界面是Kendo UI v2014.1.528
  • datasource 中创建'.Model' 我认为为什么网格没有加载正确的过滤器运算符。
  • @Jaimin,用什么参数?另外,我正在查看this,但我不知道如何让我的工作

标签: javascript jquery kendo-ui kendo-grid kendo-asp.net-mvc


【解决方案1】:

确保您的页面中有Jquery-1.8.1.min.js 或更高版本的jquery。因为addBack 已添加到1.8

这样试试,

 @(Html.Kendo().Grid<SustIMS.Models.ConcessionModel>()
    .Name("datagrid_Concessions")
    .Columns(columns =>
    {
        columns.Bound(c => c.Code).Title("Code");
        columns.Bound(c => c.Description).Title("Description");
        columns.Bound(c => c.TrafficOpeningDate).Title("Traffic Opening Date");
        columns.Bound(c => c.CreationDate).Title("Creation Date");
    })
    .HtmlAttributes(new { style = "height: 534px;" })
    .Filterable() // here's the filterable option
    .Selectable()
    .Events(e => e.Change("onChange"))
    .Pageable(pageable => pageable
        .Refresh(true))
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(15)
        .Model(model =>     <--- Add this
         {
           model.Id(m => m.Id);
           model.Field(m => m.Code);
           model.Field(m => m.Description);
         })
        .Read(read => read.Action("GetConcessions", "MasterData"))
    )
    )

查看此演示:http://jsbin.com/emuqazEz/4/edit

【讨论】:

  • 很抱歉,问题依旧
  • @chiapa 你能用IE10 试试这个吗,因为它在我的IE11 中运行良好。
  • 是的,我想我会试试的。同时,+1!
  • @chiapa 让我知道它是否正常工作而不是浏览器问题。
  • @chiapa 确保您的页面中有Jquery-1.8.1.min.js 或更高版本的jquery。因为addBack 已添加到1.8 中。
【解决方案2】:

我刚刚在 IE11 中进行了测试,过滤效果很好。

来自 Kendo UI 故障排除:

问题:

对象不支持属性或方法“kendoGrid”(在 Internet Explorer 9+ 中)

解决方案:

确保您的页面中不包含多次 jQuery。删除对 j​​Query 的任何重复脚本引用。包括所有必需的 Kendo JavaScript 文件。

这是一个与你类似的问题,所以我会检查我所有的 javascript 文件。

【讨论】:

  • 感谢您的回答。在发布我的问题之前,我显然已经研究了一段时间,并且我已经检查了重复的 jQuery 引用并添加了 kendo.all.min.js 脚本文件,其中包括每个剑道控制:到目前为止没有运气
  • 他在问你是否不止一次引用 jQuery,而不是 kendo。查看您的 &lt;script&gt; 标签并确保您只加载 一个 版本的 jQuery。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-04
  • 2015-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多