2014-03-28 99 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 => //這個模板是你必須是我參照上述文件夾中存儲的一個。

希望這有助於。