Update Ich habe es geschafft, das Formular-Rendering (siehe Bild) mit Werten und Editor-Vorlagen zu bekommen.Editierbare Detailvorlage Kendo UI Gitter
Entschuldigung für geschwärzte Etiketten. NDA Anforderungen ...
Dies nun über mehrere Zeilen funktioniert, weil ich die uid der Reihe bin mit dem Detail-Vorlage einen eindeutigen Namen zu geben, dies zu tun:
@(Html.Kendo().TabStrip()
.Name("Details_#=uid#")
Ich habe die Quelle aktualisiert unten an die neueste Version und habe eine Liste von Problemen enthalten, mit denen ich immer noch gerne Hilfe hätte.
Offene Fragen:
- Serialisierung der Detailvorlage zusammen mit dem Netz, wenn ich Änderungen speichern
- zuordnen Etikett und Validierungsregeln mit Hilfe von Data Annotations auf dem View-Modell (Dies scheint nicht, da ich zur Arbeit kann nicht scheinen, Html Helfer arbeiten zu bekommen. Tipps wäre toll!
Orignal Beitrag Text (Quelltext aktualisiert wurde)
Ich versuche ein Stapelraster zu erstellen, in dem jedes Element eine Detailvorlage enthält.
Jede Detailvorlage enthält eine Registerkarte, in der ich zusätzliche Formulardaten speichern möchte.
Im Moment habe ich die Standard-Batch-Raster arbeiten, aber ich kann nicht scheinen, um die Informationen auf dem Bildschirm für jedes Element zu bekommen und es bearbeitbar zu haben. Außerdem bricht die Detailvorlage ab, wenn mehr als eine Zeile vorhanden ist. Die Vorlage wird zwar gerendert, aber Schaltflächen sind nicht funktionsfähig, da beide Vorlagen dieselbe ID haben, die die Interaktion des Benutzers beeinträchtigt. Ich bin mir jedoch nicht sicher, wie eindeutige Kennungen für jede Zeilenvorlage sichergestellt werden können.
Ich bin auch nicht sicher, wie diese Formulardaten zu serialisieren, nachdem ich diesen ersten Schritt abgeschlossen habe, aber ich kann eine separate Frage für das, sollte es sich als notwendig erweisen.
Grid
@(Html.Kendo().Grid(Model.ItemModelList)
.Name("ItemGrid")
.Columns(columns =>
{
//Other columns omitted for brevity
columns.Bound(i => i.Description).Width(100);
columns.Command(command =>
{
command.Destroy();
}).Width(60);
})
.ClientDetailTemplateId("ItemDetails")
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))
.Pageable()
.Sortable()
.Scrollable()
.Resizable(resize => resize.Columns(true))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Events(events =>
{
events.Error("ItemGrid_ErrorHandler");
})
.Model(model =>
{
model.Id(i => i.ItemModelID);
model.Field(i => i.DimensionUOM).DefaultValue("in");
model.Field(i => i.WeightUOM).DefaultValue("lbs");
})
.Create(create => create.Action("CreateProducts", "ItemGrid"))
.Read(read => read.Action("GetProducts", "ItemGrid"))
.Update(update => update.Action("UpdateProducts", "ItemGrid"))
.Destroy(destroy => destroy.Action("DeleteProducts", "ItemGrid"))
)
)
Detailvorlage
<script id="ItemDetails" type="text/kendo-tmpl">
@(Html.Kendo().TabStrip()
.Name("Details_#=uid#")
.SelectedIndex(0)
.Items(items =>
{
items.Add().Text("test").Content(@<div>
<table id="testForm">
<tr>
<td>TEST</td>
</tr>
<tr>
</tr>
</table>
</div>);
items.Add().Text("test2").Content(@<div>
<table id="test2Form">
<tr>
<td><label>A</label></td>
<td><label>B</label></td>
<td><label>C</label></td>
<td><label>D</label></td>
<td><label>E</label></td>
</tr>
<tr>
<td>
<input class="k-textbox" value="#=objectA#">
</td>
<td>
@(Html.Kendo().DropDownList()
.Name("objectB")
.Value("#=objectB#")
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new SelectList((System.Collections.IEnumerable)ViewBag.objectBListing, "Value", "Value"))
.ToClientTemplate()
)
</td>
<td>
@(Html.Kendo().DropDownList()
.Name("objectC")
.Value("#=objectC#")
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new SelectList((System.Collections.IEnumerable)ViewBag.objectCListing, "Value", "Value"))
.ToClientTemplate()
)
</td>
<td><input class="k-textbox" value="#=objectD#"></td>
<td><input class="k-textbox" value="#=objectE#"></td>
</tr>
</table>
</div>);
})
.ToClientTemplate()
)