绑定到Kendo Grid的数据不起作用(Object不支持属性或方法' kendoGrid')

时间:2014-09-05 01:17:13

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

请注意我的代码。 我通过了我的对象模型,其中有两个项目,但是Kendo Grid无法显示它。

如何解决此问题?

我使用过ASP.NET MVC 5.

编辑:我进一步调查了一下,我发现了一个JavaScript错误。 错误是:

  

对象不支持属性或方法' kendoGrid'

public class ArticleAdminController : Controller
{
    private JahanBlogDbContext db = DataContextFactory.GetDataContext();
    private readonly IArticleRepository _articleAdminRepository;
    public ArticleAdminController(IArticleRepository articleRepository)
    {
        _articleAdminRepository = articleRepository;
    }

    public ArticleAdminController()
        : this(new ArticleRepository())
    {
    }

    // GET: ArticleAdmin
    public async Task<ActionResult> Index([DataSourceRequest] DataSourceRequest request)
    {
        List<Article> list = await _articleAdminRepository.FindAll().ToListAsync();
        return View(list); // list.count = 2
    }

    public ActionResult Editing_Read([DataSourceRequest] DataSourceRequest request)
    {
        return Json(_articleAdminRepository.FindAll().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
    }
}

这是我的观看代码。当程序运行时,只显示没有数据的网格!

@using Kendo.Mvc.UI
@model IEnumerable<Jahan.Blog.Model.Article>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>

@(Html.Kendo().Grid<Jahan.Blog.Model.Article>()
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.UserId);
        columns.Bound(p => p.Title).Width(140);
        columns.Bound(p => p.Summary).Width(140);
        columns.Bound(p => p.Description).Width(100);
        columns.Bound(p => p.LikeCounter).Width(20);
        columns.Bound(p => p.RateCounter).Width(20);
        columns.Bound(p => p.IsActive).Width(20);
        columns.Bound(p => p.IsActiveNewComment).Width(20);
        columns.Bound(p => p.CreatedDate).Width(20);
        columns.Bound(p => p.ModifiedDate).Width(20);
        columns.Command(command => command.Destroy()).Width(110);
    })
    .ToolBar(toolbar =>
    {
        toolbar.Create();
        toolbar.Save();
    })
    .Editable(editable => editable.Mode(GridEditMode.InCell))
    .Pageable()
    .Navigatable()
    .Sortable()
    .Scrollable()
        .DataSource(dataSource => dataSource
            .Ajax()
            .Batch(true)
            .PageSize(20)
            .ServerOperation(false)
            .Events(events => events.Error("error_handler"))
            .Model(model => model.Id(p => p.Id))
            .Create("Editing_Create", "Grid")
            .Read("Editing_Read", "ArticleAdmin")
            .Update("Editing_Update", "Grid")
            .Destroy("Editing_Destroy", "Grid")
        )
)
<script>
    function parameterMap(options, operation) {
        if (operation !== "read" && options.models) {
            return { models: kendo.stringify(options.models) };
        }
    }
</script>

1 个答案:

答案 0 :(得分:0)

我在this page找到了我的解决方案。

如果在页面中多次包含jQuery,则所有现有的jQuery插件(包括Kendo UI)都将被删除。如果不包含所需的Kendo JavaScript文件,也会发生。