Javascript运行时错误:"对象不支持属性或方法"在Internet Explorer中

时间:2014-07-22 09:25:12

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

我正在使用kendo网格,它们适用于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>

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

img

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

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

注意:我在Chrome和Firefox上测试过,它运行正常。该问题仅在使用Internet Explorer(版本11)时存在。

任何帮助?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我刚刚在IE11中测试过滤效果很好。

来自Kendo UI疑难解答:

问题:

对象不支持属性或方法&#39; kendoGrid&#39; (在Internet Explorer 9 +中)

解决方案:

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

这对您来说是一个类似的问题,所以我要检查所有的javascript文件。