Aktualizacja Udało mi się uzyskać renderowanie formularza (zobacz obraz) z wartościami i szablonami edytora.Edytowalny szablon szczegółów Kendo UI Siatka
Przepraszamy za zaciemnienie etykiet. Wymagania NDA ...
to teraz działa w wielu rzędach, ponieważ używam uid wiersza dać szczegół szablonu unikalną nazwę ten sposób:
@(Html.Kendo().TabStrip()
.Name("Details_#=uid#")
Mam aktualizowane źródło poniżej najnowszą wersję i zawiera listę problemów, które z przyjemnością pomogę.
Kwestie nieuregulowane:
- szeregowania szczegół szablonu wraz z siatki, kiedy zapisać zmiany
- Przypisywanie etykiety i zasady weryfikacji wykorzystując dane adnotacje na widoku modelu (nie wydają się działać odkąd nie wydaje się uzyskać pomocników Html pracy. Czy byłoby świetnie!
tekstu Orignal post (kod źródłowy został zaktualizowany)
Próbuję utworzyć siatkę wsadową, w której każdy element zawiera szablon szczegółów.
Każdy szablon szczegółów zawiera tabulator, w którym chcę przechowywać dodatkowe dane formularzy.
W tej chwili mam standardową siatkę wsadową działającą, ale nie mogę uzyskać informacji na ekranie dla każdego elementu ORAZ mieć możliwość edycji. Ponadto szablon szczegółów jest przerywany, gdy występuje więcej niż jeden wiersz. Szablon wciąż jest renderowany, ale przyciski nie działają, ponieważ oba szablony mają ten sam identyfikator, co w oczywisty sposób przełamuje zdolność użytkownika do interakcji, ale nie jestem pewien, w jaki sposób zapewnić unikalne identyfikatory dla każdego szablonu wiersza (może w jakiś sposób użyć rodzica?)
Nie jestem również pewien, jak serializować dane formularza po ukończeniu tego pierwszego kroku, ale mogę zadać osobne pytanie, jeśli okaże się to konieczne.
Siatka
@(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"))
)
)
Szablon Szczegółowy
<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()
)