2016-04-29 4 views
1

Ich habe ein Kendo-Gitter mit einem Subgitter auf MVC basiert, sind die Daten im Popup-Modus bearbeitbar. Das funktioniert alles gut, aber wenn ich eine Subrow hinzufügen möchte ich das verwandte Feld auf die Eltern-Tabelle bereits gefüllt haben. Mein Code sieht wie folgt aus:Telerik kendo MVC Untergitter in Kombination mit bearbeiten poup

<script id="subGrid" type="text/kendo-tmpl"> 
@(Html.Kendo().Grid<SiennInvoice.Models.InvoiceModel>() 
     .Name("grid_#=ID#") // template expression, to be evaluated in the master context 
      .Columns(columns => 
      { 
       columns.Bound(c => c.Description); 
       columns.ForeignKey(c => c.IntervalType, (System.Collections.IEnumerable)ViewBag.IntervalTypesDdl, "Value", "Text"); 
       columns.Bound(c => c.Interval); 
       columns.Bound(c => c.Amount); 
       columns.Bound(c => c.InvoiceDate); 
       columns.ForeignKey(c => c.Currency, (System.Collections.IEnumerable)ViewBag.CurrenciesDdl, "Value", "Text"); 
       columns.Bound(c => c.Done); 
       columns.Command(command => { command.Edit(); command.Destroy(); }).Width(180); 
      }) 
     .ToolBar(toolbar => toolbar.Create()) 
     .Editable(editable => editable.Mode(GridEditMode.PopUp)) 
     .Pageable() 
     .Sortable() 
     .DataSource(dataSource => dataSource 
      .Ajax() 
      .PageSize(10) 
      .Read(read => read.Action("HierarchyBinding_Invoices", "OrderEdit", new { OrderId = "#=ID#" })) 

      .Events(events => events.Error("error_handler")) 
      //.Model(model => model.Id(o => o.ID)) 
      .Model(model => 
      { 
       model.Id(o => o.ID); 
       model.Field(field => field.OrderId).DefaultValue("#=ID#"); 
      }) 
      //.Create(create => create.Action("Invoice_Create", "OrderEdit")) 
      //.Update(update => update.Action("Invoice_Update", "OrderEdit")) 
      //.Destroy(destroy => destroy.Action("Invoice_Destroy", "OrderEdit")) 
      //.Read(read => read.Action("Invoices_Read", "ToBeInvoiced")) 
      .Create(create => create.Action("Invoices_Create", "ToBeInvoiced")) 
      .Update(update => update.Action("Invoices_Update", "ToBeInvoiced")) 
      .Destroy(destroy => destroy.Action("Invoices_Destroy", "ToBeInvoiced")) 
     ) 
     .ToClientTemplate() 
) 
</script> 

Das Problem in der Default ist, kann ich nicht hier „# = ID“ verwenden, wie ich in der Leseaktion tun, dies wirft einen Fehler. Ich kann jedoch 1,2 oder 3 verwenden, aber ich möchte das dynamisch pro Zeile haben.

Kann mir jemand dabei helfen? danke.

Antwort

0

Ich bin versuchen, auf diese Weise zu verwenden:

  1. mein eigenes PopUp EditTemplate schreiben und schließen den Tag

<input type="hidden" name="OrderId" id="OrderId"/>

  1. add ein Ereignis

    .Events(events => events.Edit("function(e){e.model.OrderId='#=OrderId#';}"));

Verwandte Themen