0

我在网格编辑(GridEditMode.InCell)中使用 ASP.NET MVC 4 和 Telerik 的 KendoUI 网格控件。我能够在网格中查看数据并编辑数据,但问题是当我单击单元格进行编辑时,我没有获得 Kendo UI 控件(DatePicker,...)。我要编辑的控件很简单,没有任何样式。当我在页面上添加任何 Kendo 控件时,我得到了正确的控件,例如 DatePicker 控件。所以样式和控件的js就在那里。唯一的问题是我没有在网格内获得剑道控制。

索引.cshtml

@using Kendo.Mvc.UI
@using KendoGrid.Models
@(Html.Kendo().Grid<Person>()    
    .Name("Grid")    
    .Columns(columns => {        
        columns.Bound(p => p.FirstName).Width(140);
        columns.Bound(p => p.LastName).Width(140);
        columns.Bound(p => p.DayOfBirth).Width(200);
                            columns.Bound(p => p.Age).Width(150);
        columns.Command(command => command.Destroy()).Width(110);
    })
            .ToolBar(toolbar =>
            {
                toolbar.Create();
                toolbar.Save();
            })
    .Editable(editable => editable.Mode(GridEditMode.InCell))
    .Pageable()
    .Sortable()
    .Scrollable()
    .DataSource(dataSource => dataSource        
        .Ajax()         
        .Batch(true)
        .ServerOperation(false)
        .Events(events => events.Error("error_handler"))
        .Model(model => model.Id(p => p.Id))
        .Read("Read", "Grid")
        .Create("Create", "Grid")
        .Update("Update", "Grid")
        .Destroy("Destroy", "Grid")
    )
      )

          <div style="margin-top: 20px">
        @(Html.Kendo().DatePicker()
              .Name("datepicker")
              .Value("10/10/2011")
              .HtmlAttributes(new { style = "width:150px" })
        )
    </div>
<script type="text/javascript">
    function error_handler(e) {
        if (e.errors) {
            var message = "Errors:\n";
            $.each(e.errors, function (key, value) {
                if ('errors' in value) {
                    $.each(value.errors, function () {
                        message += this + "\n";
                    });
                }
            });
            alert(message);
        }
    }
</script>

_Layout.cshtml

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>
    <link rel="stylesheet" href="@Url.Content("~/Content/kendo.common.min.css")">
    <link rel="stylesheet" href="@Url.Content("~/Content/kendo.default.min.css")">
    <link rel="stylesheet" href="@Url.Content("~/Content/examples-offline.min.css")">
    <script src="@Url.Content("~/Scripts/jquery.min.js")"></script>
    <script src="@Url.Content("~/Scripts/kendo.web.min.js")"></script>
    <script src="@Url.Content("~/Scripts/kendo.aspnetmvc.min.js")"></script>
    <script src="@Url.Content("~/Scripts/console.min.js")"></script>
    <script src="@Url.Content("~/Scripts/prettify.min.js")"></script>
    @RenderSection("HeadContent", false)
</head>
<body>
    <div class="page">

        <div id="example" class="k-content">
            @RenderBody()
        </div>

    </div>
</body>
</html>

这就是 ingrid DatePiker 控件现在的样子 这就是现在的样子

这就是 DatePicker 的样子。 这就是它的样子

提前致谢。

真诚的,弗拉德

4

1 回答 1

1

很可能您缺少Views/Shared/EditorTemplates文件夹下的 EditorTemplates 。检查它们包含的离线演示(因为您共享了屏幕截图;))。

使用相同的名称将它们复制并粘贴到您的解决方案中。

于 2012-11-11T07:38:31.780 回答