2

我刚从剑道 UI 开始。我有一个包含 Kendo Grid 的 .NET MVC Razor 项目。我的页面加载良好并且看起来不错 - 数据在网格中,但我有两个问题:

  1. 当我单击“过滤器”图标时,什么也没有发生(没有弹出,什么都没有)

  2. 当我运行该页面时,我在 kendo.all.min.js 文件中的 Visual Studio 中出现错误(Error: Microsoft JScript runtime error: Object doesn't suport this action. Code highlighted reads "d.transport=new n.data.transports[a.type](c(h,{data:i}))" 在 firebug 中运行会出现此错误:"n.data.transports[a.type] is not a constructor"

我正在使用 List(CustomViewModel) 类型的模型。我已将以下脚本和 css 添加到我的 _Layout 部分视图中:

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/kendo.all.min.js")" type="text/javascript"></script>

(我尝试使用“kendo.web.min”和“kendo.aspnetmvc.min”代替“kendo.all.min”,得到相同的结果,但错误出现在 kendo.web.min.js 中)

我的页面如下所示:

@model List<CustomViewModel>
...
@(Html.Kendo().Grid(Model)
    .Name("applicantGrid")
    .Columns(columns =>
    {
        columns.Bound(p => p.ApplicationID);
        columns.Bound(p => p.FirstName);
        columns.Bound(p => p.LastName);            
    })
.Sortable()
.Filterable()  
.Pageable()        
)

我的视图模型如下所示:

public class CustomViewModel
{
    [ScaffoldColumn(false)]
    public Guid CustomViewModelID { get; set; }

    [Display(Name = "First Name")]
    public string FirstName { get; set; }

    [Display(Name = "Last Name")]
    public string LastName { get; set; }
}

我注意到在剑道示例(http: //demos.kendoui.c​​om/web/grid/local-data.html )中,当光标位于过滤器图标上时,它是一只手。在我的页面上,光标在过滤器图标上时是一个箭头。

排序工作正常。我还稍微调整了这个示例以使选择和编辑按钮正常工作,但过滤器无法正常工作。

我尝试在剑道论坛上发帖,但没有得到回应。

4

1 回答 1

5

试试这个:

添加到您的 ASP.NET MVC 布局页面:

<script src="@Url.Content("~/Scripts/kendo.web.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo.aspnetmvc.min.js")"></script>

有关更多信息,请参阅:http ://www.kendoui.c​​om/documentation/asp-net-mvc/introduction.aspx

并下载最后一个脚本版本。显然早期版本kendo.web.min没有 .Filterable() 选项。

于 2012-07-17T17:03:57.220 回答