Kendo ui 我了解如何将模板与脚本一起使用,而不是与服务器控件一起使用

Kendo ui 我了解如何将模板与脚本一起使用,而不是与服务器控件一起使用,kendo-ui,Kendo Ui,现在我要做的是混合或服务器控件和javascript。我认为剑道服务器控件很优雅。 正如你所看到的,我正绝望地试图找到如何访问网格中的可编辑属性,但运气不好。我原以为会是这样 var grid = $("#Grid").data("kendoGrid"); grid.editable.template = function () { kendo.template($("#MyTemplate").html()) }; 这个想法是,当用户点击编辑按钮时,他们会看到#MyTemplate,而不

现在我要做的是混合或服务器控件和javascript。我认为剑道服务器控件很优雅。 正如你所看到的,我正绝望地试图找到如何访问网格中的可编辑属性,但运气不好。我原以为会是这样

 var grid = $("#Grid").data("kendoGrid");
 grid.editable.template = function () { kendo.template($("#MyTemplate").html()) };
这个想法是,当用户点击编辑按钮时,他们会看到#MyTemplate,而不是kendo默认的html版本。也许,我需要去一个不同的方向请引导我

这是我的完整代码,仅供参考。
@model IEnumerable
@(Html.Kendo().Grid(模型)
.名称(“网格”)
.列(列=>
{
columns.Bound(p=>p.Id).Visible(false);
columns.Bound(p=>p.FileName).Visible(false);
columns.Bound(p=>p.FormNumber);
columns.Bound(p=>p.FormTitle);
columns.Bound(p=>p.Class);
columns.Bound(p=>p.SecondaryCategory).Title(“Category”);
columns.Bound(p=>p.RevisionDate).Format(“{0:MM/dd/yyyy}”);
columns.Command(c=>
{
c、 编辑();
c、 破坏();
});
})
.可选()
.Groupable()
.Pageable()
.可过滤()
//.Sortable()
.工具栏(工具=>
{
tools.Create();
})
.Editable(编辑器=>editor.Mode(GridEditMode.PopUp))
.DataSource(DataSource=>DataSource
.Ajax()
//这告诉剑道我是主键
.Model(Model=>
{ 
model.Id(p=>p.Id);
模型字段(p=>p.RevisionDate);
})
.Read(Read=>Read.Url(@Url.Action(“ApiAdFileDisplayGrid”,“api”,null,null)).Type(HttpVerbs.Get))
.Create(Create=>Create.Url(@Url.Action(“ApiAdFileDisplayGrid”,“api”,null,null)).Type(HttpVerbs.Post))
.Update(Update=>Update.Url(@Url.Action(“ApiAdFileDisplayGrid”,“api”,null,null)).Type(HttpVerbs.Put))
.Destroy(Destroy=>Destroy.Url(@Url.Action(“ApiAdFileDisplayGrid”,“api”,null,null)).Type(HttpVerbs.Delete))
)
)
$(函数(){
var grid=$(“#grid”).data(“kendoGrid”);
//绑定(“更改”,函数(){
//警报(“变更”);
//});
grid.bind(“数据绑定”),函数(数据){
警报(“数据绑定”);
});
grid.bind(“编辑”,函数(e){
如果(e.model.isNew()){
//创造
警报(“新”);
}否则{
//编辑
警告(“编辑”);
}
})
//WebAPI需要实体ID作为URL的一部分,例如PUT/api/Product/80
grid.dataSource.transport.options.update.url=函数(数据){
var baseUrl=“@Url.Content(“~/api/ApiAdFileDisplayGrid/”)+data.Id;
返回baseUrl;
}
//WebAPI需要实体ID作为URL的一部分,例如DELETE/api/Product/80
grid.dataSource.transport.options.destroy.url=函数(数据){
var baseUrl=“@Url.Content(“~/api/ApiAdFileDisplayGrid/”)+data.Id;
返回baseUrl;
}
grid.editable.template=函数(){kendo.template($(“#MyTemplate”).html();
});

要自定义编辑器,应使用MVC编辑器模板引擎。遵循代码库中的方法。

我在剑道网站上找到了这个线程,它为我提供了一个模板制作方法的替代方法:


不过,看看如何与KendoHTML助手创建的javascript对象交互会很有趣

但是我如何访问剑道asp mvc html助手创建的javascript属性呢。真是天才,谢谢!
 @model IEnumerable<Msh.Intranet.Models.ApiAdFileDisplayGridModel>
<script type="text/x-kendo-template" id="myTemplate">           
            <input data-bind="value: Id" name="Id"/>
        </script>
@(Html.Kendo().Grid(Model)
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.Id).Visible(false);
        columns.Bound(p => p.FileName).Visible(false);
        columns.Bound(p => p.FormNumber);
        columns.Bound(p => p.FormTitle);
        columns.Bound(p => p.Class);
        columns.Bound(p => p.SecondaryCategory).Title("Category") ;
        columns.Bound(p => p.RevisionDate).Format("{0:MM/dd/yyyy}");
        columns.Command(c =>
        {

            c.Edit();
            c.Destroy();
        });

    })
    .Selectable()
     .Groupable()
     .Pageable()
     .Filterable()
     //.Sortable()
           .ToolBar(tools =>
      {
          tools.Create();
      })
      .Editable(editor => editor.Mode(GridEditMode.PopUp))
     .DataSource(dataSource => dataSource
        .Ajax()

        //this tells kendo I am the primary key
            .Model(model => 
            { 
                model.Id(p => p.Id);
                model.Field(p => p.RevisionDate);
            })
        .Read(read => read.Url(@Url.Action("ApiAdFileDisplayGrid","api",null,null)).Type(HttpVerbs.Get))
        .Create(create=>create.Url(@Url.Action("ApiAdFileDisplayGrid","api",null,null)).Type(HttpVerbs.Post))
        .Update(update=>update.Url(@Url.Action("ApiAdFileDisplayGrid","api",null,null)).Type(HttpVerbs.Put))
        .Destroy(destroy=>destroy.Url(@Url.Action("ApiAdFileDisplayGrid","api",null,null)).Type(HttpVerbs.Delete))
    )
)
<script type="text/javascript">

    $(function () {
        var grid = $("#Grid").data("kendoGrid");

        //grid.bind("change", function () {
        //    alert("Change ");
        //});

        grid.bind("dataBound", function (data) {
            alert("dataBound");

        });

        grid.bind("edit", function (e) {

            if (e.model.isNew()) {

                //create
                alert("new");


            } else {

                //edit
                alert("edit");

            }

        })

    // WebAPI needs the ID of the entity to be part of the URL e.g. PUT /api/Product/80
    grid.dataSource.transport.options.update.url = function (data) {
        var baseUrl = "@Url.Content("~/api/ApiAdFileDisplayGrid/")" +data.Id;
        return baseUrl;
    }

    // WebAPI needs the ID of the entity to be part of the URL e.g. DELETE /api/Product/80
    grid.dataSource.transport.options.destroy.url = function(data) {
        var baseUrl = "@Url.Content("~/api/ApiAdFileDisplayGrid/")" + data.Id;
        return baseUrl;
    }
        grid.editable.template = function () { kendo.template($("#MyTemplate").html()) };
});

</script>