2014-03-28 98 views
2

请检查下面的代码剑道MVC的ListView编辑


@model IEnumerable<Polls.Core.domain.Address> 

<div class="demo-section"> 
    <a class="k-button k-button-icontext k-add-button" href="#"><span class="k-icon k-add"></span>Add new record</a> 
</div> 

<script type="text/x-kendo-tmpl" id="template"> 
    <div class="product-view k-widget"> 
     <div class="edit-buttons"> 
      <a class="k-button k-button-icontext k-edit-button" href="\\#"><span class="k-icon k-edit"></span></a> 
      <a class="k-button k-button-icontext k-delete-button" href="\\#"><span class="k-icon k-delete"></span></a> 
     </div> 
     <dl> 
      <dt>AddressType</dt> 
      <dd>#:AddressType#</dd> 

      <dt>Line1</dt> 
      <dd>#:Line1#</dd> 

      <dt>Line2</dt> 
      <dd>#:Line2#</dd> 

      <dt>Line3</dt> 
      <dd>#:Line3#</dd> 

      <dt>City</dt> 
      <dd>#:City#</dd> 

      <dt>State</dt> 
      <dd>#:State#</dd> 
     </dl> 
    </div> 
</script> 

<script type="text/x-kendo-tmpl" id="editTemplate"> 
    <div class="product-view k-widget"> 
     <div class="edit-buttons"> 
      <a class="k-button k-button-icontext k-update-button" href="\\#"><span class="k-icon k-update"></span>Save</a> 
      <a class="k-button k-button-icontext k-cancel-button" href="\\#"><span class="k-icon k-cancel"></span>Cancel</a> 
     </div> 
     <dl> 
      <dt>AddressType</dt> 
      <dd>#:AddressType#</dd> 

      <dt>Line1</dt> 
      <dd>#:Line1#</dd> 

      <dt>Line2</dt> 
      <dd>#:Line2#</dd> 

      <dt>Line3</dt> 
      <dd>#:Line3#</dd> 

      <dt>City</dt> 
      <dd>#:City#</dd> 

      <dt>State</dt> 
      <dd>#:State#</dd> 
     </dl> 
    </div> 
</script> 

<div class="demo-section"> 
    @(Html.Kendo().ListView<Polls.Core.domain.Address>(Model) 
    .Name("listView") 
    .TagName("div") 
    .ClientTemplateId("template") 
    .Editable(editor => editor.TemplateName("editTemplate")) 
    .Pageable() 
    .DataSource(dataSource => dataSource 
     .Model(model => model.Id("Id")) 
     .PageSize(6) 
       .Create(create => create.Action("Address_Create", "Test")) 
       .Read(read => read.Action("Address_Read", "Test")) 
       .Update(update => update.Action("Address_Update", "Test")) 
       .Destroy(destroy => destroy.Action("Address_Destroy", "Test")) 
    ) 
    ) 
</div> 

<script> 
    $(function() { 
     var listView = $("#listView").data("kendoListView"); 

     $(".k-add-button").click(function (e) { 
      listView.add(); 
      e.preventDefault(); 
     }); 
    }); 
</script> 

有人指导如何引用编辑模板。目前,当我点击编辑/添加新按钮时,它会显示模型中可用的所有实体。我只想在编辑时出现选定的字段。

有人请在这方面提供帮助。

回答

0

有两种方法可以使用编辑器模板与剑道列表视图:

  1. 创建一个名为Views\EditorTemplates\{yourViewModel}.cshtml的剃刀或yourViewModel.ascx的ASPX视图引擎文件夹和文件。

  2. 明确在可编辑方法指定编辑模板名称:

    .Editable(可编辑=> editable.TemplateName( “editTemplate”))

0

剑道MVC使用一个文件夹来引用编辑模板这个文件夹,你可以在View/Shared/EditorTemplates找到它(如果该文件夹不存在,只需创建它)。这个文件夹里面你可以插入你将名字来称呼,例如模板:

@(Html.Kendo().ListView<temp.Models.YourTable>(Model) 
    .Name("listView") 
    .TagName("div") 
    .ClientTemplateId("template") // here goes the template for data 
    .DataSource(dataSource => dataSource 
     .Model(m => m.Id("ID")) 
     .ServerOperation(false) 
     .Read(read => read.Action("ActionRead", "Controller")) 
    ) 
    .Editable(edit => edit.TemplateName("EditTmpl")) // here goes the template name for edit mode 
) 

EditTmpl.cshtml => //这个模板是你必须是我参照上述文件夹中存储的一个。

希望这有助于。